commit ffde94bd2ca21542ae0b4518348f8e986b9d92e0 Author: Eric Andersen Date: Sat Dec 22 00:56:11 2001 +0000 Initial revision diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..d19b251248 --- /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 +# Copyright (C) 2001 by Alcove, Julien Gaulmin +# Copyright (C) 2001 by Jon Nelson +# +# 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 0000000000..aef538959a --- /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 diff --git a/boa.mk b/boa.mk new file mode 100644 index 0000000000..c7b62c5e1a --- /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 0000000000..fcb61ce4a0 --- /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 0000000000..425d948c41 --- /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 0000000000..ccb9563318 --- /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 0000000000..cd2ba99d1c --- /dev/null +++ b/sources/device_table.txt @@ -0,0 +1,76 @@ +# device list table +# +/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 0000000000..977472e625 --- /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 0000000000..53f6ea1011 --- /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 0000000000..24b36c4ae7 Binary files /dev/null and b/sources/skel.tar differ