summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-12-22 00:56:11 +0000
committerEric Andersen <andersen@codepoet.org>2001-12-22 00:56:11 +0000
commitffde94bd2ca21542ae0b4518348f8e986b9d92e0 (patch)
tree9d916f279784df9ff65c22035b86e3ee2e3f271f
Initial revision0_0
-rw-r--r--Makefile206
-rw-r--r--README28
-rw-r--r--boa.mk78
-rw-r--r--busybox.mk63
-rw-r--r--sources/boa-config.site-i3861
-rw-r--r--sources/boa.conf187
-rw-r--r--sources/device_table.txt76
-rw-r--r--sources/linux-uml.config322
-rw-r--r--sources/mime.types205
-rw-r--r--sources/skel.tarbin0 -> 71680 bytes
10 files changed, 1166 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..d19b25124
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,206 @@
+# Makefile for user-mode-linux with a simple busybox/uClibc root filesystem
+#
+# Copyright (C) 2001 by Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2001 by Alcove, Julien Gaulmin <julien.gaulmin@fr.alcove.com>
+# Copyright (C) 2001 by Jon Nelson <jnelson@boa.org>
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# 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 Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library 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
+
+# Known problems :
+# - genext2fs: couldn't allocate a block (no free space)
+# As genext2fs allocate only one group of blocks, the FS size
+# is limited to 8Mb.
+
+# Update this stuff by hand :
+ARCH = i386
+# If you are running a cross compiler, you may want to set this
+# to something more interesting, like "arm-linux-".
+#CROSS = $(ARCH)-linux-
+
+#IMAGE_SIZE=8192 # Max size
+#IMAGE_INODES=500
+IMAGE_SIZE=550 # library is 550K
+IMAGE_INODES=300
+
+LINUX_SOURCE=linux-2.4.14.tar.bz2
+USERMODELINUX_PATCH=uml-patch-2.4.14-6.bz2
+UCLIBC_SOURCE=uClibc-snapshot.tar.gz
+
+LINUX_URI=http://www.kernel.org/pub/linux/kernel/v2.4
+USERMODELINUX_URI=http://prdownloads.sourceforge.net/user-mode-linux
+UCLIBC_URI=http://uclibc.org/downloads/
+
+# Don't alter below this line unless you (think) you know
+# what you are doing! Danger, Danger!
+
+.SUFFIXES: # Delete the default suffixes
+.SUFFIXES: .c .o .h # Define our suffix list
+
+# Directories
+BASE_DIR=${shell pwd}
+TARGET_DIR=$(BASE_DIR)/root
+STAGING_DIR=$(BASE_DIR)/staging_dir
+SOURCE_DIR=$(BASE_DIR)/sources
+LINUX_DIR=$(BASE_DIR)/linux
+UCLIBC_DIR=$(BASE_DIR)/uClibc
+GENEXT2FS_DIR=$(BASE_DIR)/genext2fs
+
+TARGET_CC=$(STAGING_DIR)/bin/gcc
+TARGET_CC1=$(STAGING_DIR)/usr/bin/$(ARCH)-uclibc-gcc
+TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(ARCH)-uclibc-
+TARGET_PATH=$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
+
+LINUX=$(BASE_DIR)/UMlinux
+IMAGE=$(BASE_DIR)/root_fs
+
+KCONFIG=$(SOURCE_DIR)/linux-uml.config
+
+all: world
+
+#So what shall we build today?
+TARGETS=
+
+-include busybox.mk
+-include boa.mk
+
+world: $(TARGETS) $(GENEXT2FS_DIR)/genext2fs $(TARGET_DIR)
+ $(GENEXT2FS_DIR)/genext2fs \
+ -b `echo $(IMAGE_SIZE) | bc` \
+ -i `echo $(IMAGE_INODES) | bc` \
+ -d $(TARGET_DIR) \
+ -D $(SOURCE_DIR)/device_table.txt root_fs
+
+$(STAGING_DIR):
+ rm -rf $(STAGING_DIR)
+ mkdir $(STAGING_DIR)
+
+$(TARGET_DIR):
+ rm -rf $(TARGET_DIR)
+ tar -xf $(SOURCE_DIR)/skel.tar
+
+# The kernel
+$(SOURCE_DIR)/$(LINUX_SOURCE):
+ while [ ! -f $(SOURCE_DIR)/$(LINUX_SOURCE) ] ; do \
+ wget -P $(SOURCE_DIR) --passive $(LINUX_URI)/$(LINUX_SOURCE); \
+ done
+
+$(LINUX_DIR)/.unpacked: $(SOURCE_DIR)/$(LINUX_SOURCE)
+ bunzip2 -c $(SOURCE_DIR)/$(LINUX_SOURCE) | tar -xv
+ touch $(LINUX_DIR)/.unpacked
+
+$(SOURCE_DIR)/$(USERMODELINUX_PATCH):
+ while [ ! -f $(SOURCE_DIR)/$(USERMODELINUX_PATCH) ] ; do \
+ wget -P $(SOURCE_DIR) --passive $(USERMODELINUX_URI)/$(USERMODELINUX_PATCH); \
+ done
+
+$(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked $(SOURCE_DIR)/$(USERMODELINUX_PATCH)
+ bzcat $(SOURCE_DIR)/$(USERMODELINUX_PATCH) | patch -d $(LINUX_DIR) -p1
+ touch $(LINUX_DIR)/.patched
+
+$(LINUX_DIR)/.um: $(LINUX_DIR)/.patched
+ sed -e 's/^ARCH :=.*/ARCH=um/g' < $(LINUX_DIR)/Makefile > $(LINUX_DIR)/Makefile.new && mv -f $(LINUX_DIR)/Makefile.new $(LINUX_DIR)/Makefile
+ touch $(LINUX_DIR)/.um
+
+$(LINUX_DIR)/.configdone: $(LINUX_DIR)/.um
+ cp -f $(KCONFIG) $(LINUX_DIR)/.config
+ make -C $(LINUX_DIR) oldconfig menuconfig
+ touch $(LINUX_DIR)/.configdone
+
+$(LINUX_DIR)/.dep: $(LINUX_DIR)/.configdone
+ make -C $(LINUX_DIR) dep
+ touch $(LINUX_DIR)/.dep
+
+$(LINUX_DIR)/linux: $(LINUX_DIR)/.dep
+ (cd $(LINUX_DIR); make linux)
+
+$(LINUX): $(LINUX_DIR)/linux
+ ln -sf $(LINUX_DIR)/linux $(LINUX)
+
+# uClibc
+$(SOURCE_DIR)/$(UCLIBC_SOURCE):
+ while [ ! -f $(SOURCE_DIR)/$(UCLIBC_SOURCE) ] ; do \
+ wget -P $(SOURCE_DIR) --passive $(UCLIBC_URI)/$(UCLIBC_SOURCE) ; \
+ done;
+
+$(UCLIBC_DIR)/Config: $(SOURCE_DIR)/$(UCLIBC_SOURCE)
+ tar -xzf $(SOURCE_DIR)/$(UCLIBC_SOURCE)
+ for p in `find $(SOURCE_DIR) -name uClibc-*.patch | sort -g`;do \
+ patch -p0 < $$p ; \
+ done
+ awk 'BEGIN { FS=" ="; REG="DODEBUG|DOLFS|INCLUDE_RPC|DOPIC";} \
+ { if ($$0 ~ "^" REG) { print $$1 " = false" } else { print $$0 } }' < \
+ $(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) > $(UCLIBC_DIR)/Config;
+
+$(UCLIBC_DIR)/lib/libc.a: $(LINUX) $(UCLIBC_DIR)/Config
+ $(MAKE) CROSS=$(CROSS) \
+ DEVEL_PREFIX=$(STAGING_DIR) \
+ SYSTEM_DEVEL_PREFIX=$(STAGING_DIR)/usr \
+ SHARED_LIB_LOADER_PATH=/lib \
+ KERNEL_SOURCE=$(LINUX_DIR) \
+ -C $(UCLIBC_DIR)
+
+uclibc: $(UCLIBC_DIR)/lib/libc.a $(STAGING_DIR) $(TARGET_DIR)
+ @A=`cksum $(STAGING_DIR)/lib/libuClibc-0.9.5.so 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(UCLIBC_DIR)/lib/libuClibc-0.9.5.so 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ set -x; \
+ $(MAKE) \
+ DEVEL_PREFIX=$(STAGING_DIR) \
+ SYSTEM_DEVEL_PREFIX=$(STAGING_DIR)/usr \
+ SHARED_LIB_LOADER_PATH=$(STAGING_DIR)/lib \
+ -C $(UCLIBC_DIR) install; \
+ fi;
+ @A=`cksum $(TARGET_DIR)/lib/libuClibc-0.9.5.so 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(UCLIBC_DIR)/lib/libuClibc-0.9.5.so 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ set -x; \
+ $(MAKE) \
+ PREFIX=$(TARGET_DIR) \
+ DEVEL_PREFIX=/ \
+ SYSTEM_DEVEL_PREFIX=/usr \
+ SHARED_LIB_LOADER_PATH=/lib \
+ -C $(UCLIBC_DIR) install_runtime; \
+ fi
+
+# genext2fs
+$(GENEXT2FS_DIR)/genext2fs:
+ $(MAKE) -C $(GENEXT2FS_DIR)
+
+# others
+clean: $(TARGETS_CLEAN)
+ make -C $(GENEXT2FS_DIR) clean
+ @if [ -d $(UCLIBC_DIR) ] ; then \
+ make -C $(UCLIBC_DIR) clean; \
+ fi;
+ @if [ -d $(LINUX_DIR) ] ; then \
+ make -C $(UCLIBC_DIR) clean; \
+ fi;
+ rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
+ rm -f *~
+
+mrproper: $(TARGETS_MRPROPER)
+ rm -rf $(UCLIBC_DIR);
+ rm -rf $(LINUX_DIR);
+ rm -f root_fs $(LINUX)
+ make -C $(GENEXT2FS_DIR) clean
+ rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
+ rm -f *~
+
+distclean: mrproper $(TARGETS_DISTCLEAN)
+ rm -f $(SOURCE_DIR)/$(UCLIBC_SOURCE)
+ rm -f $(SOURCE_DIR)/$(USERMODELINUX_PATCH)
+ rm -f $(SOURCE_DIR)/$(LINUX_SOURCE)
+
+.PHONY: uclibc $(TARGETS) world test clean mrproper distclean
diff --git a/README b/README
new file mode 100644
index 000000000..aef538959
--- /dev/null
+++ b/README
@@ -0,0 +1,28 @@
+To build and use the buildroot stuff, do the following:
+
+1) run 'make'
+2) wait while it compiles
+3) run './UMlinux' to test out your root filesystem using User Mode Linux.
+
+You do not need to be root to build or run this system. Each Virtual Terminal
+will be opened in its own window. You must be running X and have xterm
+installed for this to work -- otherwise you see a few errors on bootup as it
+tries to launch xterms. It will still work on a console, but you will not
+have access to the other Virtual Terminals.
+
+Also, you the uClibc and busybox source trees that
+are downloaded are fully set up for anonymous CVS access. You may need to set
+up your system for anonymous CVS access by running the following command:
+
+ cvs -d:pserver:anonymous@busybox.net:/var/cvs login
+
+Then just hit Enter when it prompts you for a password. You only need to do
+this once. Then, whenever you want to update your system, just go into the
+busybox or uClibc directory and run 'cvs update'.
+
+Have fun!
+
+ -Erik
+
+Please feed suggestions, bug reports, insults, and bribes back to:
+ Erik Andersen <andersen@codepoet.org>
diff --git a/boa.mk b/boa.mk
new file mode 100644
index 000000000..c7b62c5e1
--- /dev/null
+++ b/boa.mk
@@ -0,0 +1,78 @@
+#
+TARGETS += boa
+TARGETS_CLEAN += boa_clean
+TARGETS_MRPROPER += boa_mrproper
+TARGETS_DISTCLEAN += boa_distclean
+
+# Don't alter below this line unless you (think) you know
+# what you are doing! Danger, Danger!
+
+BOA_DIR=$(BASE_DIR)/${shell basename $(BOA_SOURCE) .tar.gz}
+BOA_WORKDIR=$(BASE_DIR)/boa_workdir
+BOA_URI=http://www.boa.org
+BOA_SOURCE=boa-0.94.12pre1.tar.gz
+
+IMAGE_SIZE += +100
+
+$(SOURCE_DIR)/$(BOA_SOURCE):
+ while [ ! -f $(SOURCE_DIR)/$(BOA_SOURCE) ] ; do \
+ wget -P $(SOURCE_DIR) --passive-ftp $(BOA_URI)/$(BOA_SOURCE); \
+ done
+
+$(BOA_DIR)/.unpacked: $(SOURCE_DIR)/$(BOA_SOURCE)
+ tar -xzf $(SOURCE_DIR)/$(BOA_SOURCE)
+ touch $(BOA_DIR)/.unpacked
+
+$(BOA_WORKDIR)/Makefile: uclibc $(BOA_DIR)/.unpacked
+ mkdir -p $(BOA_WORKDIR)
+ if [ -f $(SOURCE_DIR)/boa-config.site-$(ARCH) ]; then \
+ (cd $(BOA_WORKDIR) && CONFIG_SITE=$(SOURCE_DIR)/boa-config.site-$(ARCH) CC=$(TARGET_CC) $(BOA_DIR)/src/configure); \
+ else \
+ (cd $(BOA_WORKDIR) && CC=$(TARGET_CC) $(BOA_DIR)/src/configure); \
+ fi
+
+$(BOA_WORKDIR)/.built: $(BOA_WORKDIR)/Makefile
+ touch $(BOA_WORKDIR)/.depend
+ make VPATH=$(BOA_DIR)/src/ -C $(BOA_WORKDIR)
+ (cd $(BOA_WORKDIR) && strip --strip-all boa boa_indexer)
+ touch $(BOA_WORKDIR)/.built
+
+boa_install_dirs = /usr/sbin /etc/boa /usr/lib/boa /var/www /usr/lib/cgi-bin
+
+TARGET_DIRS = $(foreach dir,$(boa_install_dirs),$(TARGET_DIR)/$(dir))
+
+$(TARGET_DIRS):
+ mkdir -p $@
+
+boa: $(BOA_WORKDIR)/.built $(TARGET_DIRS)
+ @A=`cksum $(TARGET_DIR)/usr/sbin/boa 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(BOA_WORKDIR)/boa 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ cp -f $(BOA_WORKDIR)/boa $(TARGET_DIR)/usr/sbin/boa ; \
+ fi;
+ @A=`cksum $(TARGET_DIR)/usr/lib/boa/boa_indexer 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(BOA_WORKDIR)/boa_indexer 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ cp -f $(BOA_WORKDIR)/boa_indexer $(TARGET_DIR)/usr/lib/boa/boa_indexer ; \
+ fi;
+ @A=`cksum $(TARGET_DIR)/etc/boa/boa.conf 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(SOURCE_DIR)/boa.conf 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ cp -f $(SOURCE_DIR)/boa.conf $(TARGET_DIR)/etc/boa ; \
+ fi;
+ @A=`cksum $(TARGET_DIR)/etc/mime.types 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(SOURCE_DIR)/mime.types 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ cp -f $(SOURCE_DIR)/mime.types $(TARGET_DIR)/etc/mime.types ; \
+ fi;
+
+boa_clean:
+ @if [ -d $(BOA_WORKDIR)/Makefile ] ; then \
+ make -C $(BOA_WORKDIR) clean ; \
+ fi;
+
+boa_mrproper:
+ rm -rf $(BOA_DIR) $(BOA_WORKDIR)
+
+boa_distclean: boa_mrproper
+ rm -f $(SOURCE_DIR)/$(BOA_SOURCE)
diff --git a/busybox.mk b/busybox.mk
new file mode 100644
index 000000000..fcb61ce4a
--- /dev/null
+++ b/busybox.mk
@@ -0,0 +1,63 @@
+TARGETS += busybox
+TARGETS_CLEAN += busybox_clean
+TARGETS_MRPROPER += busybox_mrproper
+TARGETS_DISTCLEAN += busybox_distclean
+
+# Don't alter below this line unless you (think) you know
+# what you are doing! Danger, Danger!
+
+BUSYBOX_DIR=$(BASE_DIR)/${shell basename $(BUSYBOX_SOURCE) .tar.gz}
+BUSYBOX_WORKDIR=$(BASE_DIR)/busybox_workdir
+BUSYBOX_URI=http://busybox.net/downloads/
+BUSYBOX_SOURCE=busybox-0.60.2.tar.gz
+
+IMAGE_SIZE += +500
+
+$(SOURCE_DIR)/$(BUSYBOX_SOURCE):
+ while [ ! -f $(SOURCE_DIR)/$(BUSYBOX_SOURCE) ] ; do \
+ wget -P $(SOURCE_DIR) --passive $(BUSYBOX_URI)/$(BUSYBOX_SOURCE) ; \
+ done
+
+$(BUSYBOX_DIR)/.unpacked: $(SOURCE_DIR)/$(BUSYBOX_SOURCE)
+ tar -xzf $(SOURCE_DIR)/$(BUSYBOX_SOURCE)
+ touch $(BUSYBOX_DIR)/.unpacked
+
+$(BUSYBOX_WORKDIR)/.config: $(BUSYBOX_DIR)/.unpacked
+ rm -rf $(BUSYBOX_WORKDIR)
+ mkdir -p $(BUSYBOX_WORKDIR)
+ (cd $(BUSYBOX_WORKDIR) && sh $(BUSYBOX_DIR)/pristine_setup.sh)
+ @perl -i -p \
+ -e 's|//(#define\s+BB_)(?!FEATURE)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_VERBOSE_USAGE)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_NEW_MODULE_INTERFACE)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_COMMAND_USERNAME_COMPLETION)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_SH_FANCY_PROMPT)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_INSMOD_VERSION_CHECKING)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_IFCONFIG)|$$1|;' \
+ -e 's|//(#define\s+BB_FEATURE_DEVFS)|$$1|;' \
+ $(BUSYBOX_WORKDIR)/Config.h
+ touch $(BUSYBOX_WORKDIR)/.config
+
+$(BUSYBOX_WORKDIR)/busybox: uclibc $(BUSYBOX_WORKDIR)/.config
+ make CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_WORKDIR)
+
+$(TARGET_DIR)/bin/busybox: $(BUSYBOX_WORKDIR)/busybox
+ @A=`cksum $(TARGET_DIR)/bin/busybox 2>/dev/null | awk '{ print $$1 }'`; \
+ B=`cksum $(BUSYBOX_WORKDIR)/busybox 2>/dev/null | awk '{ print $$1 }'`; \
+ if [ "$$A" != "$$B" ] ; then \
+ make CROSS="$(TARGET_CROSS)" PREFIX=$(TARGET_DIR) \
+ -C $(BUSYBOX_WORKDIR) install; \
+ fi;
+
+busybox: uclibc $(TARGET_DIR)/bin/busybox
+
+busybox_clean:
+ @if [ -d $(BUSYBOX_WORKDIR)/Makefile ] ; then \
+ make -C $(BUSYBOX_WORKDIR) clean ; \
+ fi;
+
+busybox_mrproper:
+ rm -rf $(BUSYBOX_DIR) $(BUSYBOX_WORKDIR)
+
+busybox_distclean: busybox_mrproper
+ rm -f $(SOURCE_DIR)/$(BUSYBOX_SOURCE)
diff --git a/sources/boa-config.site-i386 b/sources/boa-config.site-i386
new file mode 100644
index 000000000..425d948c4
--- /dev/null
+++ b/sources/boa-config.site-i386
@@ -0,0 +1 @@
+ac_cv_func_setvbuf_reversed=no
diff --git a/sources/boa.conf b/sources/boa.conf
new file mode 100644
index 000000000..ccb956331
--- /dev/null
+++ b/sources/boa.conf
@@ -0,0 +1,187 @@
+# Boa v0.94 configuration file
+# File format has not changed from 0.93
+# File format has changed little from 0.92
+# version changes are noted in the comments
+#
+# The Boa configuration file is parsed with a lex/yacc or flex/bison
+# generated parser. If it reports an error, the line number will be
+# provided; it should be easy to spot. The syntax of each of these
+# rules is very simple, and they can occur in any order. Where possible
+# these directives mimic those of NCSA httpd 1.3; I saw no reason to
+# introduce gratuitous differences.
+
+# $Id: boa.conf,v 1.1 2001/12/22 00:56:12 andersen Exp $
+
+# The "ServerRoot" is not in this configuration file. It can be compiled
+# into the server (see defines.h) or specified on the command line with
+# the -c option, for example:
+#
+# boa -c /usr/local/boa
+
+
+# Port: The port Boa runs on. The default port for http servers is 80.
+# If it is less than 1024, the server must be started as root.
+
+Port 80
+
+# Listen: the Internet address to bind(2) to. If you leave it out,
+# it takes the behavior before 0.93.17.2, which is to bind to all
+# addresses (INADDR_ANY). You only get one "Listen" directive,
+# if you want service on multiple IP addresses, you have three choices:
+# 1. Run boa without a "Listen" directive
+# a. All addresses are treated the same; makes sense if the addresses
+# are localhost, ppp, and eth0.
+# b. Use the VirtualHost directive below to point requests to different
+# files. Should be good for a very large number of addresses (web
+# hosting clients).
+# 2. Run one copy of boa per IP address, each has its own configuration
+# with a "Listen" directive. No big deal up to a few tens of addresses.
+# Nice separation between clients.
+# The name you provide gets run through inet_aton(3), so you have to use dotted
+# quad notation. This configuration is too important to trust some DNS.
+
+#Listen 192.68.0.5
+
+# User: The name or UID the server should run as.
+# Group: The group name or GID the server should run as.
+
+User nobody
+Group nobody
+
+# ServerAdmin: The email address where server problems should be sent.
+# Note: this is not currently used, except as an environment variable
+# for CGIs.
+
+#ServerAdmin root@localhost
+
+# ErrorLog: The location of the error log file. If this does not start
+# with /, it is considered relative to the server root.
+# Set to /dev/null if you don't want errors logged.
+# If unset, defaults to /dev/stderr
+
+ErrorLog /var/log/boa/error_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log"
+
+# AccessLog: The location of the access log file. If this does not
+# start with /, it is considered relative to the server root.
+# Comment out or set to /dev/null (less effective) to disable
+# Access logging.
+
+AccessLog /var/log/boa/access_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log"
+
+# UseLocaltime: Logical switch. Uncomment to use localtime
+# instead of UTC time
+#UseLocaltime
+
+# VerboseCGILogs: this is just a logical switch.
+# It simply notes the start and stop times of cgis in the error log
+# Comment out to disable.
+
+#VerboseCGILogs
+
+# ServerName: the name of this server that should be sent back to
+# clients if different than that returned by gethostname + gethostbyname
+
+#ServerName www.your.org.here
+
+# VirtualHost: a logical switch.
+# Comment out to disable.
+# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'
+# become /var/www/IP-A.
+# Example: http://localhost/ becomes /var/www/127.0.0.1
+#
+# Not used until version 0.93.17.2. This "feature" also breaks commonlog
+# output rules, it prepends the interface number to each access_log line.
+# You are expected to fix that problem with a postprocessing script.
+
+#VirtualHost
+
+# DocumentRoot: The root directory of the HTML documents.
+# Comment out to disable server non user files.
+
+DocumentRoot /var/www
+
+# UserDir: The name of the directory which is appended onto a user's home
+# directory if a ~user request is recieved.
+
+UserDir public_html
+
+# DirectoryIndex: Name of the file to use as a pre-written HTML
+# directory index. Please MAKE AND USE THESE FILES. On the
+# fly creation of directory indexes can be _slow_.
+# Comment out to always use DirectoryMaker
+
+DirectoryIndex index.html
+
+# DirectoryMaker: Name of program used to create a directory listing.
+# Comment out to disable directory listings. If both this and
+# DirectoryIndex are commented out, accessing a directory will give
+# an error (though accessing files in the directory are still ok).
+
+DirectoryMaker /usr/lib/boa/boa_indexer
+
+# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker
+# has been commented out, the the on-the-fly indexing of Boa can be used
+# to generate indexes of directories. Be warned that the output is
+# extremely minimal and can cause delays when slow disks are used.
+# Note: The DirectoryCache must be writable by the same user/group that
+# Boa runs as.
+
+# DirectoryCache /var/spool/boa/dircache
+
+# KeepAliveMax: Number of KeepAlive requests to allow per connection
+# Comment out, or set to 0 to disable keepalive processing
+
+KeepAliveMax 1000
+
+# KeepAliveTimeout: seconds to wait before keepalive connection times out
+
+KeepAliveTimeout 10
+
+# MimeTypes: This is the file that is used to generate mime type pairs
+# and Content-Type fields for boa.
+# Set to /dev/null if you do not want to load a mime types file.
+# Do *not* comment out (better use AddType!)
+
+MimeTypes /etc/mime.types
+
+# DefaultType: MIME type used if the file extension is unknown, or there
+# is no file extension.
+
+DefaultType text/plain
+
+# AddType: adds types without editing mime.types
+# Example: AddType type extension [extension ...]
+
+# Uncomment the next line if you want .cgi files to execute from anywhere
+#AddType application/x-httpd-cgi cgi
+
+# Redirect, Alias, and ScriptAlias all have the same semantics -- they
+# match the beginning of a request and take appropriate action. Use
+# Redirect for other servers, Alias for the same server, and ScriptAlias
+# to enable directories for script execution.
+
+# Redirect allows you to tell clients about documents which used to exist in
+# your server's namespace, but do not anymore. This allows you to tell the
+# clients where to look for the relocated document.
+# Example: Redirect /bar http://elsewhere/feh/bar
+
+# Aliases: Aliases one path to another.
+# Example: Alias /path1/bar /path2/foo
+
+# Alias /doc /usr/doc
+
+# ScriptAlias: Maps a virtual path to a directory for serving scripts
+# Example: ScriptAlias /htbin/ /www/htbin/
+
+ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
+
diff --git a/sources/device_table.txt b/sources/device_table.txt
new file mode 100644
index 000000000..cd2ba99d1
--- /dev/null
+++ b/sources/device_table.txt
@@ -0,0 +1,76 @@
+# device list table
+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+/dev d 755 0 0 - - - - -
+/dev/mem c 640 0 0 1 1 0 0 -
+/dev/kmem c 640 0 0 1 2 0 0 -
+/dev/null c 640 0 0 1 3 0 0 -
+/dev/zero c 640 0 0 1 5 0 0 -
+/dev/random c 640 0 0 1 8 0 0 -
+/dev/urandom c 640 0 0 1 9 0 0 -
+/dev/tty c 640 0 0 5 0 0 0 -
+/dev/tty c 640 0 0 4 0 0 1 6
+/dev/console c 640 0 0 5 1 0 0 -
+/dev/ram b 640 0 0 1 1 0 0 -
+/dev/ram b 640 0 0 1 0 0 1 4
+/dev/loop b 640 0 0 7 0 0 1 2
+/dev/ttyS c 640 0 0 4 64 0 1 4
+#
+#
+#/dev/psaux c 640 0 0 10 1 0 0 -
+#/dev/rtc c 640 0 0 10 135 0 0 -
+#/dev/fd b 640 0 0 2 0 0 0 1
+#
+# IDE Devices
+/dev/hda b 640 0 0 3 0 0 0 -
+/dev/hda b 640 0 0 3 1 1 1 1
+/dev/hdb b 640 0 0 3 64 0 0 -
+/dev/hdb b 640 0 0 3 65 1 1 1
+#/dev/hdc b 640 0 0 22 0 0 0 -
+#/dev/hdc b 640 0 0 22 1 1 1 1
+#/dev/hdd b 640 0 0 22 64 0 0 -
+#/dev/hdd b 640 0 0 22 65 1 1 1
+#/dev/hde b 640 0 0 33 0 0 0 -
+#/dev/hde b 640 0 0 33 1 1 1 1
+#/dev/hdf b 640 0 0 33 64 0 0 -
+#/dev/hdf b 640 0 0 33 65 1 1 1
+#/dev/hdg b 640 0 0 34 64 0 0 -
+#/dev/hdg b 640 0 0 34 65 1 1 1
+#/dev/hdh b 640 0 0 34 64 0 0 -
+#/dev/hdh b 640 0 0 34 65 1 1 1
+# SCSI Devices
+#/dev/sda b 640 0 0 8 0 0 0 -
+#/dev/sda b 640 0 0 8 1 1 1 1
+#/dev/sdb b 640 0 0 8 16 0 0 -
+#/dev/sdb b 640 0 0 8 17 1 1 1
+#/dev/sdc b 640 0 0 8 32 0 0 -
+#/dev/sdc b 640 0 0 8 33 1 1 1
+#/dev/sdd b 640 0 0 8 48 0 0 -
+#/dev/sdd b 640 0 0 8 49 1 1 1
+#/dev/sde b 640 0 0 8 64 0 0 -
+#/dev/sde b 640 0 0 8 65 1 1 1
+#/dev/sdf b 640 0 0 8 80 0 0 -
+#/dev/sdf b 640 0 0 8 81 1 1 1
+#/dev/sdg b 640 0 0 8 96 0 0 -
+#/dev/sdg b 640 0 0 8 97 1 1 1
+#/dev/sdh b 640 0 0 8 112 0 0 -
+#/dev/sdh b 640 0 0 8 113 1 1 1
+#/dev/sg c 640 0 0 21 0 0 1 1
+#/dev/scd b 640 0 0 11 0 0 1 1
+#/dev/st b 640 0 0 9 0 1 1 4
+#/dev/st b 640 0 0 9 32 1 1 4
+#/dev/st b 640 0 0 9 64 1 1 4
+#/dev/st b 640 0 0 9 96 1 1 4
+# All the proprietary cdrom devices in the world
+#/dev/aztcd b 640 0 0 29 0 0 0 -
+#/dev/bpcd b 640 0 0 41 0 0 0 -
+#/dev/capi20 c 640 0 0 68 0 0 1 2
+#/dev/cdu31a b 640 0 0 15 0 0 0 -
+#/dev/cdu535 b 640 0 0 24 0 0 0 -
+#/dev/cm206cd b 640 0 0 32 0 0 0 -
+#/dev/sjcd b 640 0 0 18 0 0 0 -
+#/dev/sonycd b 640 0 0 15 0 0 0 -
+#/dev/gscd b 640 0 0 16 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 1 4
+#/dev/mcd b 640 0 0 23 0 0 0 -
+#/dev/optcd b 640 0 0 17 0 0 0 -
diff --git a/sources/linux-uml.config b/sources/linux-uml.config
new file mode 100644
index 000000000..977472e62
--- /dev/null
+++ b/sources/linux-uml.config
@@ -0,0 +1,322 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_USERMODE=y
+CONFIG_ISA=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Processor features
+#
+
+#
+# General Setup
+#
+CONFIG_STDIO_CONSOLE=y
+CONFIG_NET=y
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_SSL=y
+CONFIG_HOSTFS=y
+CONFIG_MCONSOLE=y
+CONFIG_MAGIC_SYSRQ=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_KMOD=y
+
+#
+# Devices
+#
+CONFIG_BLK_DEV_UBD=y
+CONFIG_BLK_DEV_UBD_SYNC=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_MMAPPER is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_NETLINK=y
+CONFIG_RTNETLINK=y
+# CONFIG_NETLINK_DEV is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# 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 is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+
+#
+#
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK 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 is not set
+
+#
+# Network drivers
+#
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=y
+CONFIG_ETHERTAP=y
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+# CONFIG_PPP_ASYNC is not set
+# CONFIG_PPP_SYNC_TTY is not set
+# CONFIG_PPP_DEFLATE is not set
+# CONFIG_PPP_BSDCOMP is not set
+# CONFIG_PPPOE is not set
+CONFIG_SLIP=y
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_UML_NET=y
+CONFIG_UML_NET_ETHERTAP=y
+CONFIG_UML_NET_TUNTAP=y
+CONFIG_UML_NET_SLIP=y
+CONFIG_UML_NET_DAEMON=y
+CONFIG_UML_NET_MCAST=y
+CONFIG_ETHERTAP=y
+CONFIG_TUN=y
+
+#
+# File systems
+#
+# CONFIG_QUOTA 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_BFS_FS is not set
+# CONFIG_CMS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_UMSDOS_FS=y
+CONFIG_VFAT_FS=y
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+CONFIG_MINIX_FS=y
+# CONFIG_FREEVXFS_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=y
+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
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+# 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
+CONFIG_ZLIB_FS_INFLATE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUGSYM is not set
+# CONFIG_PT_PROXY is not set
+# CONFIG_GPROF is not set
+# CONFIG_GCOV is not set
diff --git a/sources/mime.types b/sources/mime.types
new file mode 100644
index 000000000..53f6ea101
--- /dev/null
+++ b/sources/mime.types
@@ -0,0 +1,205 @@
+###############################################################################
+#
+# MIME-TYPES and the extensions that represent them
+#
+# This file is part of the "mime-support" package. Please send email (not a
+# bug report) to mime-support@packages.debian.org if you would like new types
+# and/or extensions to be added.
+#
+# Note: Compression schemes like "gzip", "bzip", and "compress" are not
+# actually "mime-types". They are "encodings" and hence must _not_ have
+# entries in this file to map their extensions. The "mime-type" of an
+# encoded file refers to the type of data that has been encoded, not the
+# type of the encoding.
+#
+###############################################################################
+
+
+application/activemessage
+application/andrew-inset
+application/applefile
+application/atomicmail
+application/cu-seeme csm cu
+application/dca-rft
+application/dec-dx
+application/dsptype tsp
+application/futuresplash spl
+application/ghostview
+application/mac-binhex40 hqx
+application/macwriteii
+application/msaccess mdb
+application/msword doc dot
+application/news-message-id
+application/news-transmission
+application/octet-stream bin
+application/oda oda
+application/pdf pdf
+application/pgp-signature pgp
+application/postscript ps ai eps
+application/remote-printing
+application/rtf rtf
+application/slate
+application/vnd.ms-excel xls xlb
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/wita
+application/wordperfect5.1 wp5
+application/zip zip
+application/x-123 wk
+application/x-bcpio bcpio
+application/x-chess-pgn pgn
+application/x-core
+application/x-cpio cpio
+application/x-csh
+application/x-debian-package deb
+application/x-director dcr dir dxr
+application/x-dms dms
+application/x-dvi dvi
+application/x-executable
+application/x-font pfa pfb gsf pcf pcf.Z
+application/x-gnumeric gnumeric
+application/x-gtar gtar tgz
+application/x-hdf hdf
+application/x-httpd-php phtml pht php
+application/x-httpd-php3 php3
+application/x-httpd-php3-source phps
+application/x-httpd-php3-preprocessed php3p
+application/x-httpd-php4 php4
+application/x-ica ica
+application/x-java class
+application/x-javascript js
+application/x-kdelnk
+application/x-kchart chrt
+application/x-killustrator kil
+application/x-kpresenter kpr kpt
+application/x-kspread ksp
+application/x-kword kwd kwt
+application/x-latex latex
+application/x-lha lha
+application/x-lzh lzh
+application/x-lzx lzx
+application/x-maker frm maker frame fm fb book fbdoc
+application/x-mif mif
+application/x-msdos-program com exe bat dll
+application/x-msi msi
+application/x-netcdf nc cdf
+application/x-ns-proxy-autoconfig pac
+application/x-object o
+application/x-ogg ogg
+application/x-oz-application oza
+application/x-perl pl pm
+application/x-redhat-package-manager rpm
+application/x-rx
+application/x-sh
+application/x-shar shar
+application/x-shellscript
+application/x-shockwave-flash swf swfl
+application/x-stuffit sit
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl
+application/x-tex
+application/x-tex-gf gf
+application/x-tex-pk pk PK
+application/x-texinfo texinfo texi
+application/x-trash ~ % bak old sik
+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/x-wingz wz
+
+audio/basic au snd
+audio/midi mid midi
+audio/mpeg mpga mpega mp2 mp3
+audio/mpegurl m3u
+audio/prs.sid sid
+audio/x-aiff aif aiff aifc
+audio/x-gsm gsm
+audio/x-pn-realaudio ra rm ram
+audio/x-wav wav
+
+image/bitmap bmp
+image/gif gif
+image/ief ief
+image/jpeg jpeg jpg jpe
+image/pcx pcx
+image/png png
+image/tiff tiff tif
+image/vnd.wap.wbmp wbmp
+image/x-cmu-raster ras
+image/x-coreldraw cdr
+image/x-coreldrawpattern pat
+image/x-coreldrawtemplate cdt
+image/x-corelphotopaint cpt
+image/x-jng jng
+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
+
+inode/chardevice
+inode/blockdevice
+inode/directory-locked
+inode/directory
+inode/fifo
+inode/socket
+
+message/external-body
+message/news
+message/partial
+message/rfc822
+
+multipart/alternative
+multipart/appledouble
+multipart/digest
+multipart/mixed
+multipart/parallel
+
+text/comma-separated-values csv
+text/css css
+text/english
+text/html htm html xhtml
+text/mathml mml
+text/plain txt text diff
+text/richtext rtx
+text/tab-separated-values tsv
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/xml xml
+text/x-c++hdr h++ hpp hxx hh
+text/x-c++src c++ cpp cxx cc
+text/x-chdr h
+text/x-crontab
+text/x-csh csh
+text/x-csrc c
+text/x-java java
+text/x-makefile
+text/x-moc moc
+text/x-pascal p pas
+text/x-setext etx
+text/x-sh sh
+text/x-tcl tcl tk
+text/x-tex tex ltx sty cls
+text/x-vcalendar vcs
+text/x-vcard vcf
+
+video/dl dl
+video/fli fli
+video/gl gl
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-mng mng
+video/x-ms-asf asf asx
+video/x-msvideo avi
+video/x-sgi-movie movie
+
+x-world/x-vrml vrm vrml wrl
diff --git a/sources/skel.tar b/sources/skel.tar
new file mode 100644
index 000000000..24b36c4ae
--- /dev/null
+++ b/sources/skel.tar
Binary files differ