Major rework
authorEric Andersen <andersen@codepoet.org>
Fri, 26 Apr 2002 11:45:55 +0000 (11:45 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 26 Apr 2002 11:45:55 +0000 (11:45 -0000)
28 files changed:
.cvsignore [new file with mode: 0644]
Makefile
boa.mk [deleted file]
busybox.mk [deleted file]
make/boa.mk [new file with mode: 0644]
make/busybox.mk [new file with mode: 0644]
make/ext2root.mk [new file with mode: 0644]
make/tinylogin.mk [new file with mode: 0644]
make/uclibc.mk [new file with mode: 0644]
make/user-mode-linux.mk [new file with mode: 0644]
sources/busybox.patch [new file with mode: 0644]
sources/device_table.txt
sources/genext2fs.patch [new file with mode: 0644]
sources/linux-uml.config
sources/skel.tar [deleted file]
sources/skel.tar.gz [new file with mode: 0644]
sources/target_skeleton/etc/group
sources/target_skeleton/etc/init.d/S05ramdisk1 [deleted file]
sources/target_skeleton/etc/init.d/S20syslogd [deleted file]
sources/target_skeleton/etc/init.d/S50hostname [deleted file]
sources/target_skeleton/etc/init.d/S50networking [new file with mode: 0755]
sources/target_skeleton/etc/inittab
sources/target_skeleton/etc/passwd
sources/target_skeleton/etc/profile
sources/target_skeleton/etc/protocols
sources/target_skeleton/etc/services
sources/target_skeleton/etc/shadow
sources/uClibc-Config.awk [deleted file]

diff --git a/.cvsignore b/.cvsignore
new file mode 100644 (file)
index 0000000..9171c49
--- /dev/null
@@ -0,0 +1,2 @@
+UMlinux
+root_fs
index 20c8908f164321d6d07271284817943a374db3a6..07315405bc615a5e8107d0f5b1062d121f937ec0 100644 (file)
--- a/Makefile
+++ b/Makefile
-# Makefile for user-mode-linux with a simple busybox/uClibc root filesystem
+# Makefile for 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>
+# Copyright (C) 2001-2002 by Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2002 by Tim Riker <Tim@Rikers.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 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.
+# 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
+# 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
+#############################################################
+#
+# EDIT this stuff to suit your system and preferences
+#
+# Use := when possible to get precomputation, thereby 
+# speeding up the build process.
+#
+#############################################################
 
-LINUX_SOURCE=linux-2.4.17.tar.bz2
-LINUX_URI=http://www.kernel.org/pub/linux/kernel/v2.4
+# What sortof target system shall we compile this for?
+ARCH:=i386
+#ARCH:=arm
+#ARCH:=whatever
 
-USERMODELINUX_PATCH=uml-patch-2.4.17-3.bz2
-USERMODELINUX_URI=http://prdownloads.sourceforge.net/user-mode-linux
+# 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:=true
 
-UCLIBC_SOURCE=uClibc-snapshot.tar.gz
-UCLIBC_URI=http://www.uclibc.org/downloads/
+# Enable large file (files > 2 GB) support
+BUILD_WITH_LARGEFILE:=false
 
-# Don't alter below this line unless you (think) you know
-# what you are doing! Danger, Danger!
+#############################################################
+#
+# The list of stuff to build for the target filesystem
+#
+#############################################################
+TARGETS:=user-mode-linux uclibc busybox tinylogin
 
-.SUFFIXES:            # Delete the default suffixes
-.SUFFIXES: .c .o .h   # Define our suffix list
+# Pick your root filesystem type.
+TARGETS+=ext2root
 
-# 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
+#############################################################
+#
+# You should probably leave this stuff alone unless you know 
+# what you are doing.
+#
+#############################################################
+BASE_DIR:=${shell pwd}
+HOSTCC:=gcc
+LINUX_KERNEL=$(BASE_DIR)/UMlinux
+SOURCE_DIR:=$(BASE_DIR)/sources
+DL_DIR:=$(SOURCE_DIR)/dl
+PATCH_DIR=$(SOURCE_DIR)/patches
+BUILD_DIR:=$(BASE_DIR)/build
+TARGET_DIR:=$(BUILD_DIR)/root
+STAGING_DIR:=$(BUILD_DIR)/staging_dir
+TARGET_CC:=$(STAGING_DIR)/bin/gcc
+TARGET_CROSS:=$(STAGING_DIR)/usr/bin/$(ARCH)-uclibc-
+TARGET_CC1:=$(TARGET_CROSS)gcc
+TARGET_PATH:=$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
+STRIP:=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
+IMAGE:=$(BASE_DIR)/root_fs
+ifneq ($(strip $(ARCH)),i386)
+CROSS:=$(ARCH)-linux-
+endif
 
-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
+all:   world
 
-LINUX=$(BASE_DIR)/UMlinux
-IMAGE=$(BASE_DIR)/root_fs
+TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
+TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
 
-KCONFIG=$(SOURCE_DIR)/linux-uml.config
+world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) $(TARGETS)
 
-all:   world
+.PHONY: all world clean dirclean distclean $(TARGETS) $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN)
 
-#So what shall we build today?
-TARGETS=
+include make/*.mk
 
--include busybox.mk
--include boa.mk
+#############################################################
+#
+# staging and target directories do NOT list these as 
+# dependancies anywhere else
+#
+#############################################################
+$(DL_DIR):
+       mkdir $(DL_DIR)
 
-world: $(TARGETS) root_fs $(LINUX)
+$(BUILD_DIR):
+       mkdir $(BUILD_DIR)
 
-root_fs:       $(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)
 
-$(STAGING_DIR)/.target_dir_exists:
+$(TARGET_DIR):
        rm -rf $(TARGET_DIR)
-       tar -xf $(SOURCE_DIR)/skel.tar
-       cp -a target_skeleton/* $(TARGET_DIR)/
+       zcat $(SOURCE_DIR)/skel.tar.gz | tar -C $(BUILD_DIR) -xf -
+       cp -a $(SOURCE_DIR)/target_skeleton/* $(TARGET_DIR)/
        -find $(TARGET_DIR) -type d -name CVS -exec rm -rf {} \; > /dev/null 2>&1
-       touch $(STAGING_DIR)/.target_dir_exists
-
-# 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)
-       rm -rf $(LINUX_DIR) # Keeps old versions from messing things up
-       bzip2 -dc $(SOURCE_DIR)/$(LINUX_SOURCE) | tar -xvf -
-       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)
-       # This step cannot gracefully recover from interruption
-       @if [ -f $(LINUX_DIR)/.started_patch ]; then \
-               echo "Something went wrong patching the kernel."; \
-               echo "Please rm -rf the kernel directory (\"$(LINUX_DIR)\") and type \"make\" again."; \
-               exit 1; \
-       fi
-       touch $(LINUX_DIR)/.started_patch
-       bzcat $(SOURCE_DIR)/$(USERMODELINUX_PATCH) | patch -d $(LINUX_DIR) -p1
-       cp -f $(KCONFIG) $(LINUX_DIR)/.config
-       mv $(LINUX_DIR)/.started_patch $(LINUX_DIR)/.patched # Hah! Atomic
-
-$(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
-       make -C $(LINUX_DIR) oldconfig
-       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
-       make -C $(LINUX_DIR) 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)
-       rm -rf $(UCLIBC_DIR) # Make sure no previous version interferes here
-       gzip -d -c $(SOURCE_DIR)/$(UCLIBC_SOURCE) | tar -xvf -
-       # The next step patches uClibc
-       # Place patches in the source directory, named uClibc-*.patch
-       for p in `find $(SOURCE_DIR) -name uClibc-*.patch | sort -g`;do \
-               patch -p0 < $$p ; \
-       done
-       # Finally, patch the Config file to our liking
-       # uClibc-Config.awk should be pretty staightforward
-       awk -f $(SOURCE_DIR)/uClibc-Config.awk < \
-               $(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) > \
-               $(UCLIBC_DIR)/Config
-
-$(UCLIBC_DIR)/lib/libc.a:      $(LINUX_DIR)/.dep $(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)
-
-$(TARGET_CC):  $(UCLIBC_DIR)/lib/libc.a
-       $(MAKE) CROSS=$(CROSS) \
-       DEVEL_PREFIX=$(STAGING_DIR) \
-       SYSTEM_DEVEL_PREFIX=$(STAGING_DIR)/usr \
-       SHARED_LIB_LOADER_PATH=$(STAGING_DIR)/lib \
-       -C $(UCLIBC_DIR) install
-
-$(UCLIBC_DIR)/.installed_runtime:      $(STAGING_DIR)/.target_dir_exists $(TARGET_CC)
-       $(MAKE) CROSS=$(CROSS) \
-       PREFIX=$(TARGET_DIR) \
-       DEVEL_PREFIX=/ \
-       SYSTEM_DEVEL_PREFIX=/usr \
-       SHARED_LIB_LOADER_PATH=/lib \
-       -C $(UCLIBC_DIR) install_runtime
-       touch $(UCLIBC_DIR)/.installed_runtime
-
-uclibc:        $(TARGET_CC) $(UCLIBC_DIR)/.installed_runtime
-
-# 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 $(LINUX_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 uclibc-build uclibc-runtime $(TARGETS) world test clean mrproper distclean
+
+
+#############################################################
+#
+# Cleanup and misc junk
+#
+#############################################################
+clean: $(TARGETS_CLEAN)
+       rm -rf $(TARGET_DIR) $(STAGING_DIR) $(IMAGE)
+
+dirclean: $(TARGETS_DIRCLEAN)
+       rm -rf $(TARGET_DIR) $(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/boa.mk b/boa.mk
deleted file mode 100644 (file)
index 0b595bd..0000000
--- a/boa.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-# 
-TARGETS += boa
-TARGETS_CLEAN += boa_clean
-TARGETS_MRPROPER += boa_mrproper
-TARGETS_DISTCLEAN += boa_distclean
-
-BOA_VERSION=0.94.12pre1
-
-# Don't alter below this line unless you (think) you know
-# what you are doing! Danger, Danger!
-
-BOA_URI=http://www.boa.org
-BOA_SOURCE=boa-$(BOA_VERSION).tar.gz
-BOA_DIR=$(BASE_DIR)/${shell basename $(BOA_SOURCE) .tar.gz}
-BOA_WORKDIR=$(BASE_DIR)/boa_workdir
-
-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)
-       gzip -d -c $(SOURCE_DIR)/$(BOA_SOURCE) | tar -xvf -
-       touch $(BOA_DIR)/.unpacked
-
-$(BOA_WORKDIR)/Makefile: $(TARGET_CC) $(BOA_DIR)/.unpacked
-       rm -f $(BOA_WORKDIR)/Makefile
-       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
-       touch $(BOA_WORKDIR)/.depend
-        
-$(BOA_WORKDIR)/boa $(BOA_WORKDIR)/boa_indexer: $(BOA_WORKDIR)/Makefile
-       rm -f $@
-       make VPATH=$(BOA_DIR)/src/ -C $(BOA_WORKDIR)
-
-$(BOA_WORKDIR)/.installed: $(BOA_WORKDIR)/boa $(BOA_WORKDIR)/boa_indexer
-       mkdir -p $(TARGET_DIR)/usr/sbin
-       cp -f $(BOA_WORKDIR)/boa $(TARGET_DIR)/usr/sbin/boa
-       mkdir -p $(TARGET_DIR)/usr/lib/boa
-       cp -f $(BOA_WORKDIR)/boa_indexer $(TARGET_DIR)/usr/lib/boa/boa_indexer
-       mkdir -p $(TARGET_DIR)/etc/boa
-       cp -f $(SOURCE_DIR)/boa.conf $(TARGET_DIR)/etc/boa
-       cp -f $(SOURCE_DIR)/mime.types $(TARGET_DIR)/etc/mime.types
-       strip --strip-all $(TARGET_DIR)/usr/sbin/boa $(TARGET_DIR)/usr/lib/boa/boa_indexer
-       touch $(BOA_WORKDIR)/.installed
-
-boa:   $(BOA_WORKDIR)/.installed
-
-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
deleted file mode 100644 (file)
index 061e94d..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-TARGETS += busybox
-TARGETS_CLEAN += busybox_clean
-TARGETS_MRPROPER += busybox_mrproper
-TARGETS_DISTCLEAN += busybox_distclean
-
-BUSYBOX_VERSION=0.60.2
-
-# Don't alter below this line unless you (think) you know
-# what you are doing! Danger, Danger!
-
-BUSYBOX_URI=http://www.busybox.net/downloads/
-BUSYBOX_SOURCE=busybox-$(BUSYBOX_VERSION).tar.gz
-BUSYBOX_DIR=$(BASE_DIR)/${shell basename $(BUSYBOX_SOURCE) .tar.gz}
-BUSYBOX_WORKDIR=$(BASE_DIR)/busybox_workdir
-
-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)
-       rm -rf $(BUSYBOX_DIR) # Make sure no older version interferes
-       gzip -d -c $(SOURCE_DIR)/$(BUSYBOX_SOURCE) | tar -xvf -
-       touch $(BUSYBOX_DIR)/.unpacked
-       
-$(BUSYBOX_WORKDIR)/.config:    $(BUSYBOX_DIR)/.unpacked
-       rm -rf $(BUSYBOX_WORKDIR) # Make sure no half-configured busybox interferes
-       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)/.built:     $(TARGET_CC) $(BUSYBOX_WORKDIR)/.config
-       make CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_WORKDIR)
-       touch $(BUSYBOX_WORKDIR)/.built
-
-$(TARGET_DIR)/bin/busybox:     $(BUSYBOX_WORKDIR)/.built
-       make PREFIX=$(TARGET_DIR) -C $(BUSYBOX_WORKDIR) install
-
-busybox: $(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/make/boa.mk b/make/boa.mk
new file mode 100644 (file)
index 0000000..0b595bd
--- /dev/null
@@ -0,0 +1,64 @@
+# 
+TARGETS += boa
+TARGETS_CLEAN += boa_clean
+TARGETS_MRPROPER += boa_mrproper
+TARGETS_DISTCLEAN += boa_distclean
+
+BOA_VERSION=0.94.12pre1
+
+# Don't alter below this line unless you (think) you know
+# what you are doing! Danger, Danger!
+
+BOA_URI=http://www.boa.org
+BOA_SOURCE=boa-$(BOA_VERSION).tar.gz
+BOA_DIR=$(BASE_DIR)/${shell basename $(BOA_SOURCE) .tar.gz}
+BOA_WORKDIR=$(BASE_DIR)/boa_workdir
+
+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)
+       gzip -d -c $(SOURCE_DIR)/$(BOA_SOURCE) | tar -xvf -
+       touch $(BOA_DIR)/.unpacked
+
+$(BOA_WORKDIR)/Makefile: $(TARGET_CC) $(BOA_DIR)/.unpacked
+       rm -f $(BOA_WORKDIR)/Makefile
+       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
+       touch $(BOA_WORKDIR)/.depend
+        
+$(BOA_WORKDIR)/boa $(BOA_WORKDIR)/boa_indexer: $(BOA_WORKDIR)/Makefile
+       rm -f $@
+       make VPATH=$(BOA_DIR)/src/ -C $(BOA_WORKDIR)
+
+$(BOA_WORKDIR)/.installed: $(BOA_WORKDIR)/boa $(BOA_WORKDIR)/boa_indexer
+       mkdir -p $(TARGET_DIR)/usr/sbin
+       cp -f $(BOA_WORKDIR)/boa $(TARGET_DIR)/usr/sbin/boa
+       mkdir -p $(TARGET_DIR)/usr/lib/boa
+       cp -f $(BOA_WORKDIR)/boa_indexer $(TARGET_DIR)/usr/lib/boa/boa_indexer
+       mkdir -p $(TARGET_DIR)/etc/boa
+       cp -f $(SOURCE_DIR)/boa.conf $(TARGET_DIR)/etc/boa
+       cp -f $(SOURCE_DIR)/mime.types $(TARGET_DIR)/etc/mime.types
+       strip --strip-all $(TARGET_DIR)/usr/sbin/boa $(TARGET_DIR)/usr/lib/boa/boa_indexer
+       touch $(BOA_WORKDIR)/.installed
+
+boa:   $(BOA_WORKDIR)/.installed
+
+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/make/busybox.mk b/make/busybox.mk
new file mode 100644 (file)
index 0000000..179a5d7
--- /dev/null
@@ -0,0 +1,47 @@
+#############################################################
+#
+# busybox
+#
+#############################################################
+USE_BUSYBOX_SNAPSHOT=true
+ifeq ($(USE_BUSYBOX_SNAPSHOT),true)
+# Be aware that this changes daily....
+BUSYBOX_DIR:=$(BUILD_DIR)/busybox
+BUSYBOX_SOURCE=busybox-snapshot.tar.bz2
+BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots
+UNZIP=bzcat
+else
+BUSYBOX_DIR:=$(BUILD_DIR)/busybox-0.60.2
+BUSYBOX_SOURCE:=busybox-0.60.2.tar.gz
+BUSYBOX_SITE:=http://www.busybox.net/downloads
+UNZIP=zcat
+endif
+BUSYBOX_PATCH:=$(SOURCE_DIR)/busybox.patch
+
+
+$(DL_DIR)/$(BUSYBOX_SOURCE):
+        wget -P $(DL_DIR) --passive-ftp $(BUSYBOX_SITE)/$(BUSYBOX_SOURCE)
+
+busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_PATCH)
+
+$(BUSYBOX_DIR)/Config.h: $(DL_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_PATCH)
+       $(UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       cat $(BUSYBOX_PATCH) | patch -d $(BUSYBOX_DIR) -p1
+ifeq ($(strip $(BUILD_WITH_LARGEFILE)),true)
+       perl -i -p -e "s/^DOLFS.*/DOLFS=true/;" $(BUSYBOX_DIR)/Makefile
+endif
+
+$(BUSYBOX_DIR)/busybox: $(BUSYBOX_DIR)/Config.h
+       make CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" -C $(BUSYBOX_DIR)
+
+$(TARGET_DIR)/bin/busybox: $(BUSYBOX_DIR)/busybox
+       make CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" -C $(BUSYBOX_DIR) install
+
+busybox: uclibc $(TARGET_DIR)/bin/busybox
+
+busybox-clean:
+       rm -f $(TARGET_DIR)/bin/busybox
+       -make -C $(BUSYBOX_DIR) clean
+
+busybox-dirclean:
+       rm -rf $(BUSYBOX_DIR)
diff --git a/make/ext2root.mk b/make/ext2root.mk
new file mode 100644 (file)
index 0000000..37a9da2
--- /dev/null
@@ -0,0 +1,53 @@
+#############################################################
+#
+# genext2fs to build to target ext2 filesystems
+#
+#############################################################
+GENEXT2_DIR=$(BUILD_DIR)/genext2fs-1.3.orig
+GENEXT2_SOURCE=genext2fs_1.3.orig.tar.gz
+GENEXT2_SITE=http://ftp.debian.org/debian/pool/main/g/genext2fs
+GENEXT2_PATCH=$(SOURCE_DIR)/genext2fs.patch
+
+$(DL_DIR)/$(GENEXT2_SOURCE):
+       wget -P $(DL_DIR) --passive-ftp $(GENEXT2_SITE)/$(GENEXT2_SOURCE)
+
+$(GENEXT2_DIR): $(DL_DIR)/$(GENEXT2_SOURCE) $(GENEXT2_PATCH)
+       zcat $(DL_DIR)/$(GENEXT2_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       cat $(GENEXT2_PATCH) | patch -p1 -d $(GENEXT2_DIR)
+
+$(GENEXT2_DIR)/genext2fs: $(GENEXT2_DIR)
+       $(MAKE) CFLAGS="-Wall -O2 -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64" -C $(GENEXT2_DIR);
+       touch -c $(GENEXT2_DIR)/genext2fs
+
+genext2fs: $(GENEXT2_DIR)/genext2fs
+
+
+
+#############################################################
+#
+# Build the ext2 root filesystem image
+#
+# Known problems :
+#  - genext2fs: couldn't allocate a block (no free space)
+#  
+#    Since genext2fs allocates only one group of blocks, the FS 
+#    size is limited to a maximum of 8 Mb.
+#
+#############################################################
+# FIXME -- calculate these numbers...
+SIZE=4000
+INODES=1000
+
+ext2root: genext2fs #$(shell find $(TARGET_DIR) -type f)
+       -@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+       -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+       $(GENEXT2_DIR)/genext2fs -i $(INODES) -b $(SIZE) -d $(TARGET_DIR) -D $(SOURCE_DIR)/device_table.txt $(IMAGE)
+
+ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
+
+ext2root-clean:
+       -make -C $(GENEXT2_DIR) clean
+
+ext2root-dirclean:
+       rm -rf $(GENEXT2_DIR)
+
diff --git a/make/tinylogin.mk b/make/tinylogin.mk
new file mode 100644 (file)
index 0000000..653f379
--- /dev/null
@@ -0,0 +1,38 @@
+#############################################################
+#
+# tinylogin
+#
+#############################################################
+TINYLOGIN_DIR:=$(BUILD_DIR)/tinylogin-1.00
+# FIXME - this changes daily. we should use a stable tarball and cvs up if desired
+#TINYLOGIN_SOURCE=tinylogin-snapshot.tar.bz2
+TINYLOGIN_SOURCE:=tinylogin-1.00.tar.bz2
+TINYLOGIN_SITE:=http://tinylogin.busybox.net/downloads
+
+$(DL_DIR)/$(TINYLOGIN_SOURCE):
+       wget -P $(DL_DIR) --passive-ftp $(TINYLOGIN_SITE)/$(TINYLOGIN_SOURCE)
+
+tinylogin-source: $(DL_DIR)/$(TINYLOGIN_SOURCE)
+
+$(TINYLOGIN_DIR)/Config.h: $(DL_DIR)/$(TINYLOGIN_SOURCE)
+       bzcat $(DL_DIR)/$(TINYLOGIN_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       perl -i -p -e "s/\`id -u\` -ne 0/0 == 1/;" \
+               -e "s/4755 --owner=root --group=root/755/" \
+               $(TINYLOGIN_DIR)/install.sh
+       # date test this one
+       touch $(TINYLOGIN_DIR)/Config.h
+
+$(TINYLOGIN_DIR)/tinylogin: $(TINYLOGIN_DIR)/Config.h
+       make CROSS="$(TARGET_CROSS)" -C $(TINYLOGIN_DIR)
+
+$(TARGET_DIR)/bin/tinylogin: $(TINYLOGIN_DIR)/tinylogin
+       make CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" -C $(TINYLOGIN_DIR) install
+
+tinylogin: uclibc $(TARGET_DIR)/bin/tinylogin
+
+tinylogin-clean:
+       rm -f $(TARGET_DIR)/bin/tinylogin
+       -make -C $(TINYLOGIN_DIR) clean
+
+tinylogin-dirclean:
+       rm -rf $(TINYLOGIN_DIR)
diff --git a/make/uclibc.mk b/make/uclibc.mk
new file mode 100644 (file)
index 0000000..3b3b16d
--- /dev/null
@@ -0,0 +1,75 @@
+#############################################################
+#
+# uClibc (the C library)
+#
+#############################################################
+
+ifeq ($(USE_UCLIBC_SNAPSHOT),true)
+# Be aware that this changes daily....
+UCLIBC_DIR=$(BUILD_DIR)/uClibc
+UCLIBC_SOURCE=uClibc-snapshot.tar.bz2
+else
+UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.11
+UCLIBC_SOURCE:=uClibc-0.9.11.tar.bz2
+endif
+#UCLIBC_URI:=http://www.uclibc.org/downloads
+UCLIBC_URI:=http://de.busybox.net/downloads/uClibc
+ifeq ($(strip $(BUILD_WITH_LARGEFILE)),true)
+LARGEFILE=true
+else
+LARGEFILE=false
+endif
+ifneq ($(CROSS),)
+CROSSARG:=--cross="$(CROSS)"
+endif
+
+$(DL_DIR)/$(UCLIBC_SOURCE):
+       wget -P $(DL_DIR) --passive-ftp $(UCLIBC_URI)/$(UCLIBC_SOURCE)
+
+uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
+
+$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
+       rm -rf $(UCLIBC_DIR)
+       bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
+       touch $(UCLIBC_DIR)/.unpacked
+
+$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
+       $(UCLIBC_DIR)/extra/Configs/uClibc_config_fix.pl \
+               --arch=$(ARCH) \
+               $(CROSSARG) --c99_math=true \
+               --devel_prefix=$(STAGING_DIR) \
+               --float=true \
+               --kernel_dir=$(LINUX_DIR) \
+               --large_file=$(LARGEFILE) \
+               --ldso_path="/lib" \
+               --long_long=true \
+               --rpc_support=true \
+               --shadow=true \
+               --shared_support=true \
+               --threads=true \
+               --debug=false \
+               --file=$(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) \
+               > $(UCLIBC_DIR)/Config; 
+       perl -i -p -e 's,SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=$(STAGING_DIR)/usr,g' $(UCLIBC_DIR)/Config
+
+       touch $(UCLIBC_DIR)/.configured
+
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured
+       $(MAKE) -C $(UCLIBC_DIR)
+
+$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) install
+
+$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) DEVEL_PREFIX=$(TARGET_DIR) \
+               SYSTEM_DEVEL_PREFIX=$(TARGET_DIR)/usr install_runtime install_utils
+
+uclibc: $(LINUX_KERNEL) $(TARGET_DIR)/lib/libc.so.0
+
+uclibc-clean:
+       rm -f $(TARGET_DIR)/lib/libc.so.0
+       -make -C $(UCLIBC_DIR) clean
+       rm -f $(UCLIBC_DIR)/Config
+
+uclibc-dirclean:
+       rm -rf $(UCLIBC_DIR)
diff --git a/make/user-mode-linux.mk b/make/user-mode-linux.mk
new file mode 100644 (file)
index 0000000..930e249
--- /dev/null
@@ -0,0 +1,54 @@
+#############################################################
+#
+# Linux kernel targets
+#
+#############################################################
+UMLINUX_DIR=$(BUILD_DIR)/linux
+UMLINUX_SOURCE=linux-2.4.18.tar.bz2
+UMLINUX_SITE=http://ftp.us.kernel.org/pub/linux/kernel/v2.4
+UMLINUX_PATCH_1:=uml-patch-2.4.18-19.bz2
+UMLINUX_PATCH_1_SITE:=http://prdownloads.sourceforge.net/user-mode-linux
+UMLINUX_KCONFIG=$(SOURCE_DIR)/linux-uml.config
+
+$(DL_DIR)/$(UMLINUX_SOURCE):
+       wget -P $(DL_DIR) --passive-ftp $(UMLINUX_SITE)/$(UMLINUX_SOURCE)
+
+$(DL_DIR)/$(UMLINUX_PATCH_1):
+       wget -P $(DL_DIR) --passive-ftp $(UMLINUX_PATCH_1_SITE)/$(UMLINUX_PATCH_1)
+
+user-mode-linux-source: $(DL_DIR)/$(UMLINUX_SOURCE) $(DL_DIR)/$(UMLINUX_PATCH_1)
+
+$(UMLINUX_DIR)/.unpacked: $(DL_DIR)/$(UMLINUX_SOURCE) $(DL_DIR)/$(UMLINUX_PATCH_1)
+       bzcat $(DL_DIR)/$(UMLINUX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       touch $(UMLINUX_DIR)/.unpacked
+
+$(UMLINUX_DIR)/.patched: $(UMLINUX_DIR)/.unpacked
+       bzcat $(DL_DIR)/$(UMLINUX_PATCH_1) | patch -d $(UMLINUX_DIR) -p1
+       touch $(UMLINUX_DIR)/.patched
+
+$(UMLINUX_DIR)/.set_arch: $(UMLINUX_DIR)/.patched
+       perl -i -p -e "s/^ARCH :=.*/ARCH:=um/g;" $(UMLINUX_DIR)/Makefile
+       touch $(UMLINUX_DIR)/.set_arch
+
+$(UMLINUX_DIR)/.config: $(UMLINUX_DIR)/.set_arch
+       cp $(UMLINUX_KCONFIG) $(UMLINUX_DIR)/.config
+       make -C $(UMLINUX_DIR) oldconfig
+       touch -c $(UMLINUX_DIR)/.config
+
+$(UMLINUX_DIR)/linux: $(UMLINUX_DIR)/.config
+       make -C $(UMLINUX_DIR) dep
+       make -C $(UMLINUX_DIR) linux
+
+$(LINUX_KERNEL): $(UMLINUX_DIR)/linux
+       cp -fa $(UMLINUX_DIR)/linux $(LINUX_KERNEL)
+
+user-mode-linux: $(LINUX_KERNEL)
+
+# Renamed so it is not cleaned by default on a make clean
+user-mode-linux_clean: clean
+       rm -f $(LINUX_KERNEL)
+       -make -C $(UMLINUX_DIR) clean
+
+user-mode-linux-dirclean:
+       rm -rf $(UMLINUX_DIR)
+
diff --git a/sources/busybox.patch b/sources/busybox.patch
new file mode 100644 (file)
index 0000000..2ad7bf0
--- /dev/null
@@ -0,0 +1,209 @@
+--- busybox/Config.h   6 Apr 2002 04:22:15 -0000       1.116
++++ busybox/Config.h   26 Apr 2002 10:54:28 -0000
+@@ -18,9 +18,9 @@
+ #define BB_CHROOT
+ #define BB_CHVT
+ #define BB_CLEAR
+-//#define BB_CMP
++#define BB_CMP
+ #define BB_CP
+-//#define BB_CPIO
++#define BB_CPIO
+ #define BB_CUT
+ #define BB_DATE
+ //#define BB_DC
+@@ -29,7 +29,7 @@
+ #define BB_DF
+ #define BB_DIRNAME
+ #define BB_DMESG
+-//#define BB_DOS2UNIX
++#define BB_DOS2UNIX
+ //#define BB_DPKG
+ //#define BB_DPKG_DEB
+ //#define BB_DUTMP
+@@ -37,13 +37,13 @@
+ //#define BB_DUMPKMAP
+ #define BB_ECHO
+ #define BB_ENV
+-//#define BB_EXPR
+-//#define BB_FBSET
++#define BB_EXPR
++#define BB_FBSET
+ //#define BB_FDFLUSH
+ #define BB_FIND
+ #define BB_FREE
+-//#define BB_FREERAMDISK
+-//#define BB_FSCK_MINIX
++#define BB_FREERAMDISK
++#define BB_FSCK_MINIX
+ //#define BB_GETOPT
+ #define BB_GREP
+ #define BB_GUNZIP
+@@ -51,12 +51,12 @@
+ #define BB_HALT
+ #define BB_HEAD
+ //#define BB_HOSTID
+-//#define BB_HOSTNAME
++#define BB_HOSTNAME
+ //#define BB_HUSH
+ #define BB_ID
+-//#define BB_IFCONFIG
++#define BB_IFCONFIG
+ #define BB_INIT
+-//#define BB_INSMOD
++#define BB_INSMOD
+ #define BB_KILL
+ #define BB_KILLALL
+ #define BB_KLOGD
+@@ -72,10 +72,10 @@
+ #define BB_LS
+ #define BB_LSMOD
+ //#define BB_MAKEDEVS
+-//#define BB_MD5SUM
++#define BB_MD5SUM
+ #define BB_MKDIR
+ //#define BB_MKFIFO
+-//#define BB_MKFS_MINIX
++#define BB_MKFS_MINIX
+ #define BB_MKNOD
+ #define BB_MKSWAP
+ //#define BB_MKTEMP
+@@ -85,24 +85,24 @@
+ //#define BB_MSH
+ //#define BB_MT
+ #define BB_MV
+-//#define BB_NC
+-//#define BB_NSLOOKUP
++#define BB_NC
++#define BB_NSLOOKUP
+ #define BB_PIDOF
+-//#define BB_PING
+-//#define BB_PIVOT_ROOT
++#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_READLINK
+ #define BB_REBOOT
+ //#define BB_RENICE
+ #define BB_RESET
+ #define BB_RM
+ #define BB_RMDIR
+-//#define BB_RMMOD
+-//#define BB_ROUTE
++#define BB_RMMOD
++#define BB_ROUTE
+ //#define BB_RPM2CPIO
+ #define BB_SED
+ //#define BB_SETKEYCODES
+@@ -114,29 +114,29 @@
+ #define BB_SYSLOGD
+ #define BB_TAIL
+ #define BB_TAR
+-//#define BB_TEE
+-//#define BB_TEST
+-//#define BB_TELNET
++#define BB_TEE
++#define BB_TEST
++#define BB_TELNET
+ //#define BB_TFTP
+-//#define BB_TIME
++#define BB_TIME
+ #define BB_TOUCH
+-//#define BB_TR
+-//#define BB_TRACEROUTE
++#define BB_TR
++#define BB_TRACEROUTE
+ #define BB_TRUE_FALSE
+ #define BB_TTY
+-//#define BB_UNIX2DOS
++#define BB_UNIX2DOS
+ //#define BB_UUENCODE
+ //#define BB_UUDECODE
+ #define BB_UMOUNT
+ #define BB_UNIQ
+ #define BB_UNAME
+-//#define BB_UPDATE
++#define BB_UPDATE
+ #define BB_UPTIME
+ //#define BB_USLEEP
+-//#define BB_VI
++#define BB_VI
+ //#define BB_WATCHDOG
+ #define BB_WC
+-//#define BB_WGET
++#define BB_WGET
+ #define BB_WHICH
+ #define BB_WHOAMI
+ #define BB_XARGS
+@@ -217,16 +217,16 @@
+ #define BB_FEATURE_USE_INITTAB
+ //
+ //Enable init being called as /linuxrc
+-#define BB_FEATURE_LINUXRC
++//#define BB_FEATURE_LINUXRC
+ //
+ //Have init enable core dumping for child processes (for debugging only) 
+ //#define BB_FEATURE_INIT_COREDUMPS
+ //
+ //Make sure nothing is printed to the console on boot
+-//#define BB_FEATURE_EXTRA_QUIET
++#define BB_FEATURE_EXTRA_QUIET
+ //
+ // enable syslogd -R remotehost
+-#define BB_FEATURE_REMOTE_LOG
++//#define BB_FEATURE_REMOTE_LOG
+ //
+ // enable syslogd -C
+ //#define BB_FEATURE_IPC_SYSLOG
+@@ -308,13 +308,13 @@
+ #define BB_FEATURE_ASH_JOB_CONTROL
+ //
+ //Turn on extra fbset options
+-//#define BB_FEATURE_FBSET_FANCY
++#define BB_FEATURE_FBSET_FANCY
+ //
+ //Turn on fbset readmode support
+-//#define BB_FEATURE_FBSET_READMODE
++#define BB_FEATURE_FBSET_READMODE
+ //
+ // Support insmod/lsmod/rmmod for post 2.1 kernels
+-//#define BB_FEATURE_NEW_MODULE_INTERFACE
++#define BB_FEATURE_NEW_MODULE_INTERFACE
+ //
+ // Support insmod/lsmod/rmmod for pre 2.1 kernels
+ //#define BB_FEATURE_OLD_MODULE_INTERFACE
+@@ -332,16 +332,16 @@
+ //#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
++#define BB_FEATURE_IFCONFIG_SLIP
+ //
+ // Enable ifconfig options "mem_start", "io_addr", and "irq".
+-//#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
++#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+ //
+ // Enable ifconfig option "hw".  Currently works for only with "ether".
+-//#define BB_FEATURE_IFCONFIG_HW
++#define BB_FEATURE_IFCONFIG_HW
+ //
+ // Allows "broadcast +" to set broadcast automatically based on hostaddr
+ // and netmask, at a cost of about 100 bytes of code (i386).
+@@ -379,7 +379,7 @@
+ #define BB_FEATURE_FIND_NEWER
+ //
+ // Support for the -A -B and -C context flags in grep
+-//#define BB_FEATURE_GREP_CONTEXT
++#define BB_FEATURE_GREP_CONTEXT
+ //
+ // Support for the EGREP applet (alias to the grep applet)
+ //#define BB_FEATURE_GREP_EGREP_ALIAS
index f0edd20ec5cd2c5f805d46b390d600b29c30b0db..f4a3e9b764a84701bd45da885b8bf301a8ff96df 100644 (file)
@@ -1,6 +1,14 @@
 # device list table
 #<name>                <type>  <mode>  <uid>   <gid>   <major> <minor> <start> <inc>   <count>
 /dev           d       755     0       0       -       -       -       -       -
+/dev/pts       d       755     0       0       -       -       -       -       -
+
+# Fixme -- add support for type 'f'
+#/bin/tinylogin        f       4755    0       0       -       -       -       -       -
+#/etc/shadow   f       600     0       0       -       -       -       -       -
+#/etc/shadow   f       600     0       0       -       -       -       -       -
+
+# Normal stuff
 /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/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/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
 #
+# Raid device directories
+/dev/cciss     d       755     0       0       -       -       -       -       -
+/dev/ida       d       755     0       0       -       -       -       -       -
+/dev/rd                d       755     0       0       -       -       -       -       -
+#
 # IDE Devices
 /dev/hda       b       640     0       0       3       0       0       0       -
-/dev/hda       b       640     0       0       3       1       1       1       1
+/dev/hda       b       640     0       0       3       1       1       1       15
 /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      0       0       0       -
-#/dev/hdg      b       640     0       0       34      1       1       1       1
-#/dev/hdh      b       640     0       0       34      64      0       0       -
-#/dev/hdh      b       640     0       0       34      65      1       1       1
+/dev/hdb       b       640     0       0       3       65      1       1       15
+/dev/hdc       b       640     0       0       22      0       0       0       -
+/dev/hdc       b       640     0       0       22      1       1       1       15
+/dev/hdd       b       640     0       0       22      64      0       0       -
+/dev/hdd       b       640     0       0       22      65      1       1       15
+/dev/hde       b       640     0       0       33      0       0       0       -
+/dev/hde       b       640     0       0       33      1       1       1       15
+/dev/hdf       b       640     0       0       33      64      0       0       -
+/dev/hdf       b       640     0       0       33      65      1       1       15
+/dev/hdg       b       640     0       0       34      0       0       0       -
+/dev/hdg       b       640     0       0       34      1       1       1       15
+/dev/hdh       b       640     0       0       34      64      0       0       -
+/dev/hdh       b       640     0       0       34      65      1       1       15
 # 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
+/dev/sda       b       640     0       0       8       0       0       0       -
+/dev/sda       b       640     0       0       8       1       1       1       15
+/dev/sdb       b       640     0       0       8       16      0       0       -
+/dev/sdb       b       640     0       0       8       17      1       1       15
+/dev/sdc       b       640     0       0       8       32      0       0       -
+/dev/sdc       b       640     0       0       8       33      1       1       15
+/dev/sdd       b       640     0       0       8       48      0       0       -
+/dev/sdd       b       640     0       0       8       49      1       1       15
+/dev/sde       b       640     0       0       8       64      0       0       -
+/dev/sde       b       640     0       0       8       65      1       1       15
+/dev/sdf       b       640     0       0       8       80      0       0       -
+/dev/sdf       b       640     0       0       8       81      1       1       15
+/dev/sdg       b       640     0       0       8       96      0       0       -
+/dev/sdg       b       640     0       0       8       97      1       1       15
+/dev/sdh       b       640     0       0       8       112     0       0       -
+/dev/sdh       b       640     0       0       8       113     1       1       15
+/dev/sg                c       640     0       0       21      0       0       1       15
+/dev/scd       b       640     0       0       11      0       0       1       15
+/dev/st                c       640     0       0       9       0       0       1       8
+/dev/nst       c       640     0       0       9       128     0       1       8
+#/dev/st       c       640     0       0       9       32      1       1       4
+#/dev/st       c       640     0       0       9       64      1       1       4
+#/dev/st       c       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       -
diff --git a/sources/genext2fs.patch b/sources/genext2fs.patch
new file mode 100644 (file)
index 0000000..008a24b
--- /dev/null
@@ -0,0 +1,800 @@
+diff -urN genext2fs-1.3.orig/Makefile genext2fs/Makefile
+--- genext2fs-1.3.orig/Makefile        Wed Dec 31 17:00:00 1969
++++ genext2fs/Makefile Fri Sep 28 15:48:58 2001
+@@ -0,0 +1,19 @@
++CC=gcc
++CFLAGS=-Wall -O2
++
++SRC=genext2fs.c
++OBJS=$(patsubst %.c,%.o, $(SRC))
++
++
++all: genext2fs
++
++genext2fs: $(OBJS)
++      $(CC) $(CFLAGS) -o $@ $(OBJS) -o $@
++
++$(OBJS): %.o : %.c
++      $(CC) $(CFLAGS) -c $< -o $@
++
++$(OBJS): Makefile
++
++clean:
++      rm -f *.o *.a core genext2fs
+diff -urN genext2fs-1.3.orig/dev.txt genext2fs/dev.txt
+--- genext2fs-1.3.orig/dev.txt Thu Sep 28 09:03:19 2000
++++ genext2fs/dev.txt  Wed Dec 31 17:00:00 1969
+@@ -1,94 +0,0 @@
+-drwx          /dev
+-crw-  10,190  /dev/lcd
+-crw-  10,191  /dev/splc781
+-crw-  4,0     /dev/console
+-crw-  5,64    /dev/cua0
+-crw-  5,65    /dev/cua1
+-crw-  5,66    /dev/cua2
+-crw-  5,70    /dev/cua6
+-crw-  5,71    /dev/cua7
+-crw-  5,72    /dev/cua8
+-crw-  5,73    /dev/cua9
+-crw-  29,0    /dev/fb0
+-crw-  29,32   /dev/fb1
+-crw-  1,2     /dev/kmem
+-crw-  1,1     /dev/mem
+-crw-  1,3     /dev/null
+-crw-  2,2     /dev/ptyp2
+-crw-  2,3     /dev/ptyp3
+-crw-  2,5     /dev/ptyp5
+-crw-  2,4     /dev/ptyp4
+-crw-  10,178  /dev/triokb
+-crw-  2,0     /dev/ptyp0
+-crw-  2,6     /dev/ptyp6
+-crw-  2,7     /dev/ptyp7
+-crw-  2,8     /dev/ptyp8
+-crw-  2,9     /dev/ptyp9
+-crw-  2,10    /dev/ptypa
+-crw-  2,11    /dev/ptypb
+-crw-  2,12    /dev/ptypc
+-crw-  2,13    /dev/ptypd
+-crw-  2,14    /dev/ptype
+-crw-  2,15    /dev/ptypf
+-brw-  1,0     /dev/ram0
+-brw-  1,1     /dev/ram1
+-brw-  1,2     /dev/ram2
+-brw-  1,3     /dev/ram3
+-br--  31,0    /dev/rom0
+-brw-  31,1    /dev/rom1
+-brw-  31,2    /dev/rom2
+-brw-  31,3    /dev/rom3
+-crw-  5,0     /dev/tty
+-crw-  4,0     /dev/tty0
+-crwx  4,1     /dev/tty1
+-crwx  4,2     /dev/tty2
+-crwx  4,3     /dev/tty3
+-crwx  4,4     /dev/tty4
+-crw-  4,5     /dev/tty5
+-crwx  4,6     /dev/tty6
+-crw-  4,7     /dev/tty7
+-crw-  4,8     /dev/tty8
+-crw-  4,9     /dev/tty9
+-crw-  4,64    /dev/ttyS0
+-crw-  4,65    /dev/ttyS1
+-crw-  4,66    /dev/ttyS2
+-crw-  4,67    /dev/ttyS3
+-crw-  4,68    /dev/ttyS4
+-crw-  4,69    /dev/ttyS5
+-crw-  4,70    /dev/ttyS6
+-crw-  4,71    /dev/ttyS7
+-crw-  4,72    /dev/ttyS8
+-crw-  4,73    /dev/ttyS9
+-crw-  3,0     /dev/ttyp0
+-crw-  3,1     /dev/ttyp1
+-crw-  3,2     /dev/ttyp2
+-crw-  3,3     /dev/ttyp3
+-crw-  3,4     /dev/ttyp4
+-crw-  3,5     /dev/ttyp5
+-crw-  3,6     /dev/ttyp6
+-crw-  3,7     /dev/ttyp7
+-crw-  3,8     /dev/ttyp8
+-crw-  3,9     /dev/ttyp9
+-crw-  3,10    /dev/ttypa
+-crw-  3,11    /dev/ttypb
+-crw-  3,12    /dev/ttypc
+-crw-  3,13    /dev/ttypd
+-crw-  3,14    /dev/ttype
+-crw-  3,15    /dev/ttypf
+-crw-  1,5     /dev/zero
+-crwx  10,111  /dev/dtedrv
+-crwx  4,110   /dev/ttyM
+-crw-  77,1    /dev/tssnd
+-crw-  77,2    /dev/tstone
+-crw-  2,1     /dev/ptyp1
+-crwx  10,180  /dev/triohook
+-crw-  90,0    /dev/mtd0
+-brw-  44,0    /dev/ftl0
+-crw-  10,175  /dev/tporta
+-crw-  10,176  /dev/tportb
+-crwx  10,100  /dev/softmodem
+-crwx  10,101  /dev/softmodem_signals
+-crwx  10,181  /dev/triovoice
+-crw-  5,67    /dev/cua3
+-crw-  5,68    /dev/cua4
+-crw-  5,69    /dev/cua5
+diff -urN genext2fs-1.3.orig/device_table.txt genext2fs/device_table.txt
+--- genext2fs-1.3.orig/device_table.txt        Wed Dec 31 17:00:00 1969
++++ genext2fs/device_table.txt Fri Mar 15 02:14:39 2002
+@@ -0,0 +1,78 @@
++# device list table
++#<name>               <type>  <mode>  <uid>   <gid>   <major> <minor> <start> <inc>   <count>
++/dev          d       755     0       0       -       -       -       -       -
++#
++# Normal stuff
++/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
++#
++# Raid device directories
++#/dev/cciss   d       755     0       0       -       -       -       -       -
++#/dev/ida     d       755     0       0       -       -       -       -       -
++#/dev/rd              d       755     0       0       -       -       -       -       -
++#
++# IDE Devices
++/dev/hda      b       640     0       0       3       0       0       0       -
++/dev/hda      b       640     0       0       3       1       1       1       15
++/dev/hdb      b       640     0       0       3       64      0       0       -
++/dev/hdb      b       640     0       0       3       65      1       1       15
++/dev/hdc      b       640     0       0       22      0       0       0       -
++/dev/hdc      b       640     0       0       22      1       1       1       15
++/dev/hdd      b       640     0       0       22      64      0       0       -
++/dev/hdd      b       640     0       0       22      65      1       1       15
++#/dev/hde     b       640     0       0       33      0       0       0       -
++#/dev/hde     b       640     0       0       33      1       1       1       15
++#/dev/hdf     b       640     0       0       33      64      0       0       -
++#/dev/hdf     b       640     0       0       33      65      1       1       15
++#/dev/hdg     b       640     0       0       34      0       0       0       -
++#/dev/hdg     b       640     0       0       34      1       1       1       15
++#/dev/hdh     b       640     0       0       34      64      0       0       -
++#/dev/hdh     b       640     0       0       34      65      1       1       15
++# SCSI Devices
++#/dev/sda     b       640     0       0       8       0       0       0       -
++#/dev/sda     b       640     0       0       8       1       1       1       15
++#/dev/sdb     b       640     0       0       8       16      0       0       -
++#/dev/sdb     b       640     0       0       8       17      1       1       15
++#/dev/sdc     b       640     0       0       8       32      0       0       -
++#/dev/sdc     b       640     0       0       8       33      1       1       15
++#/dev/sdd     b       640     0       0       8       48      0       0       -
++#/dev/sdd     b       640     0       0       8       49      1       1       15
++#/dev/sde     b       640     0       0       8       64      0       0       -
++#/dev/sde     b       640     0       0       8       65      1       1       15
++#/dev/sdf     b       640     0       0       8       80      0       0       -
++#/dev/sdf     b       640     0       0       8       81      1       1       15
++#/dev/sdg     b       640     0       0       8       96      0       0       -
++#/dev/sdg     b       640     0       0       8       97      1       1       15
++#/dev/sdh     b       640     0       0       8       112     0       0       -
++#/dev/sdh     b       640     0       0       8       113     1       1       15
++#/dev/sg              c       640     0       0       21      0       0       1       15
++#/dev/scd     b       640     0       0       11      0       0       1       15
++#/dev/st              c       640     0       0       9       0       0       1       15
++# 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 -urN genext2fs-1.3.orig/genext2fs.c genext2fs/genext2fs.c
+--- genext2fs-1.3.orig/genext2fs.c     Fri Mar 15 02:26:01 2002
++++ genext2fs/genext2fs.c      Fri Mar 15 02:25:46 2002
+@@ -26,6 +26,10 @@
+ //                    Bugfix: getcwd values for Solaris       xavier.gueguen@col.bsf.alcatel.fr
+ //                    Bugfix: ANSI scanf for non-GNU C        xavier.gueguen@col.bsf.alcatel.fr
+ //    28 Jun 2001     Bugfix: getcwd differs for Solaris/GNU  mike@sowbug.com
++//    19 Jun 2001     Erik Andersen <andersee@debian.org> added 
++//                        the -n (nosquash) option.
++//    03 Mar 2002     Erik Andersen <andersee@debian.org> added 
++//                        mkfs.jffs2 compatible device table support
+ // `genext2fs' is a mean to generate an ext2 filesystem
+@@ -33,10 +37,6 @@
+ // the image file to copy files on it. It doesn't even require
+ // you to be the superuser to make device nodes.
+ //
+-// Warning ! `genext2fs' has been designed for embedded
+-// systems. As such, it will generate a filesystem for single-user
+-// usage: all files/directories/etc... will belong to UID/GID 0
+-//
+ // Example usage:
+ //
+ // # genext2fs -b 1440 -d srcdir /dev/fd0
+@@ -45,28 +45,24 @@
+ // a new ext2 filesystem image. You can then mount the floppy as
+ // usual.
+ //
+-// # genext2fs -b 1024 -d builddir -f devices.txt flashdisk.img
++// # genext2fs -b 1024 -d builddir -D device_table.txt flashdisk.img
+ //
+ // This one would build a filesystem from all the files in builddir,
+-// then would read a devices list and make apropriate nodes. The
+-// format for the device list is:
+-//
+-// drwx            /dev
+-// crw-    10,190  /dev/lcd
+-// brw-    1,0     /dev/ram0
+-// 
+-// This device list builds the /dev directory, a character device
+-// node /dev/lcd (major 10, minor 190) and a block device node
+-// /dev/ram0 (major 1, minor 0)
+-
++// then would read a devices table  and make apropriate nodes. The
++// format for the device list is illustrared in the device_table.txt
++// file which in included with the source
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <dirent.h>
+ #include <stdarg.h>
++#include <time.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <ctype.h>
++#include <fcntl.h>
+@@ -390,6 +386,7 @@
+ #undef utdecl32
+ char * argv0;
++int nosquash = 0;
+ // error (un)handling
+ inline void errexit(const char *fmt, ...)
+@@ -663,14 +660,27 @@
+ }
+ // link an entry (inode #) to a directory
+-void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
++void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name, uint32 mode, uid_t uid, gid_t gid, time_t ctime)
+ {
+       blockwalker bw;
+       uint32 bk;
+       uint8 *b;
+       directory *d;
+       int reclen, nlen;
+-      if((get_nod(fs, dnod)->i_mode & FM_IFMT) != FM_IFDIR)
++      inode *node;
++      inode *pnode;
++
++      if (nosquash == 0) {
++          /* Ok, squash everything */
++          uid = 0;
++          gid = 0;
++          if(!S_ISDIR(mode))
++              mode &= ~(S_IWGRP | S_IWOTH); 
++          mode &= ~(S_ISUID | S_ISGID); 
++      }
++      pnode = get_nod(fs, dnod);
++
++      if(!S_ISDIR(pnode->i_mode))
+               errexit("can't add '%s' to a non-directory", name);
+       if(!*name)
+               errexit("bad name '%s' (not meaningful)", name);
+@@ -691,9 +701,16 @@
+                       if((!d->d_inode) && (d->d_rec_len >= reclen))
+                       {
+                               d->d_inode = nod;
+-                              get_nod(fs, nod)->i_links_count++;
++                              node = get_nod(fs, nod);
++                              node->i_links_count++;
+                               d->d_name_len = nlen;
+                               strncpy(d->d_name, name, nlen);
++                              node->i_mode = mode;
++                              node->i_uid = uid;
++                              node->i_gid = gid;
++                              node->i_atime = ctime;
++                              node->i_ctime = ctime;
++                              node->i_mtime = ctime;
+                               return;
+                       }
+                       // if entry with enough room (last one?), shrink it & use it
+@@ -705,9 +722,16 @@
+                               d = (directory*) (((int8*)d) + d->d_rec_len);
+                               d->d_rec_len = reclen;
+                               d->d_inode = nod;
+-                              get_nod(fs, nod)->i_links_count++;
++                              node = get_nod(fs, nod);
++                              node->i_links_count++;
+                               d->d_name_len = nlen;
+                               strncpy(d->d_name, name, nlen);
++                              node->i_mode = mode;
++                              node->i_uid = uid;
++                              node->i_gid = gid;
++                              node->i_atime = ctime;
++                              node->i_ctime = ctime;
++                              node->i_mtime = ctime;
+                               return;
+                       }
+               }
+@@ -716,10 +740,17 @@
+       b = get_workblk();
+       d = (directory*)b;
+       d->d_inode = nod;
+-      get_nod(fs, nod)->i_links_count++;
++      node = get_nod(fs, nod);
++      node->i_links_count++;
+       d->d_rec_len = BLOCKSIZE;
+       d->d_name_len = nlen;
+       strncpy(d->d_name, name, nlen);
++      node->i_mode = mode;
++      node->i_uid = uid;
++      node->i_gid = gid;
++      node->i_atime = ctime;
++      node->i_ctime = ctime;
++      node->i_mtime = ctime;
+       extend_blk(fs, dnod, b, 1);
+       get_nod(fs, dnod)->i_size += BLOCKSIZE;
+       free_workblk(b);
+@@ -770,27 +801,29 @@
+ }
+ // make a full-fledged directory (i.e. with "." & "..")
+-uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode)
++uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, uid_t uid, gid_t gid, time_t ctime)
+ {
+       uint32 nod;
+       if((nod = find_dir(fs, parent_nod, name)))
+               return nod;
+               nod = alloc_nod(fs);
+-      get_nod(fs, nod)->i_mode = FM_IFDIR | mode;
+-      add2dir(fs, parent_nod, nod, name);
+-      add2dir(fs, nod, nod, ".");
+-      add2dir(fs, nod, parent_nod, "..");
++      if (!(mode & FM_IFDIR))
++          mode |= FM_IFDIR;
++      add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
++      add2dir(fs, nod, nod, ".", mode, uid, gid, ctime);
++      add2dir(fs, nod, parent_nod, "..", mode, uid, gid, ctime);
+       fs->gd.bg_used_dirs_count++;
+       return nod;
+ }
+ // make a symlink
+-uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 * b)
++uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 * b, uid_t uid, gid_t gid, time_t ctime)
+ {
++      uint32 mode;
+       uint32 nod = alloc_nod(fs);
+-      get_nod(fs, nod)->i_mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
++      mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO; 
+       get_nod(fs, nod)->i_size = size;
+-      add2dir(fs, parent_nod, nod, name);
++      add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
+       if(size <= 4 * (EXT2_TIND_BLOCK+1))
+       {
+               strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
+@@ -801,13 +834,13 @@
+ }
+ // make a file from a FILE*
+-uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f)
++uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, time_t ctime)
+ {
+       uint8 * b;
+       uint32 nod = alloc_nod(fs);
+-      get_nod(fs, nod)->i_mode = FM_IFREG | mode;
++      mode |= FM_IFREG;
+       get_nod(fs, nod)->i_size = size;
+-      add2dir(fs, parent_nod, nod, name);
++      add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
+       if(!(b = (uint8*)malloc(rndup(size, BLOCKSIZE))))
+               errexit("not enough mem to read file '%s'", name);
+       memset(b, 0,rndup(size, BLOCKSIZE));
+@@ -824,6 +857,8 @@
+ uint32 get_mode(struct stat *st)
+ {
+       uint32 mode = 0;
++      if (nosquash == 1)
++          return st->st_mode;
+       if(st->st_mode & S_IRUSR)
+               mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
+       if(st->st_mode & S_IWUSR)
+@@ -833,19 +868,6 @@
+       return mode;
+ }
+-// retrieves a mode info from a string
+-uint32 get_modestr(const char *p)
+-{
+-      uint32 mode = 0;
+-      if(p[0] == 'r')
+-              mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
+-      if(p[1] == 'w')
+-              mode |= FM_IWUSR | FM_IWGRP | FM_IWOTH;
+-      if(p[2] == 'x' || p[2] == 's')
+-              mode |= FM_IXUSR | FM_IXGRP | FM_IXOTH;
+-      return mode;
+-}
+-
+ // basename of a path - free me
+ char * basename(const char * fullpath)
+ {
+@@ -864,66 +886,6 @@
+       return n;
+ }
+-// adds entries to the filesystem from a text file
+-void add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh)
+-{
+-      uint32 mode;
+-      uint32 nod, nod2;
+-      char cmod[11], *path, *name, *dir;
+-      int major, minor;
+-      while(fscanf(fh, "%10s", cmod))
+-      {
+-              if(feof(fh))
+-                      break;
+-              mode = get_modestr(cmod + 1);
+-              switch(*cmod)
+-              {
+-                      case 'd':
+-                              fscanf(fh, "%" SCANF_PREFIX "s\n", SCANF_STRING(path));
+-                              break;
+-                      case 'c':
+-                              mode |= FM_IFCHR;
+-                              fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
+-                              break;
+-                      case 'b':
+-                              mode |= FM_IFBLK;
+-                              fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
+-                              break;
+-                      case '#':
+-                              while(fgetc(fh) != '\n');
+-                              continue;
+-                      default:
+-                              errexit("malformed text input file");
+-              }
+-              name = basename(path);
+-              dir = dirname(path);
+-              free(path);
+-              if(!(nod = find_path(fs, this_nod, dir)))
+-                      errexit("can't find directory '%s' to create '%s''", dir, name);
+-              free(dir);
+-              if((!strcmp(name, ".")) || (!strcmp(name, "..")))
+-              {
+-                      free(name);
+-                      continue;
+-              }
+-              switch(*cmod)
+-              {
+-                      case 'd':
+-                              mkdir_fs(fs, nod, name, mode);
+-                              break;
+-                      case 'c':
+-                      case 'b':
+-                              nod2 = alloc_nod(fs);
+-                              get_nod(fs, nod2)->i_mode = mode;
+-                              ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor;
+-                              ((uint8*)get_nod(fs, nod2)->i_block)[1] = major;
+-                              add2dir(fs, nod, nod2, name);
+-                              break;
+-              }
+-              free(name);
+-      }
+-}
+-
+ // adds a tree of entries to the filesystem from current dir
+ void add2fs_from_dir(filesystem *fs, uint32 this_nod)
+ {
+@@ -948,24 +910,24 @@
+                               get_nod(fs, nod)->i_mode = (((st.st_mode & S_IFMT) == S_IFCHR) ? FM_IFCHR : FM_IFBLK) | get_mode(&st);
+                               ((uint8*)get_nod(fs, nod)->i_block)[0] = (st.st_rdev & 0xff);
+                               ((uint8*)get_nod(fs, nod)->i_block)[1] = (st.st_rdev >> 8);
+-                              add2dir(fs, this_nod, nod, dent->d_name);
++                              add2dir(fs, this_nod, nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
+                               break;
+                       case S_IFLNK:
+                               if(!(b = (uint8*)malloc(rndup(st.st_size, BLOCKSIZE))))
+                                       errexit("out of memory");
+                               if(readlink(dent->d_name, (char*)b, st.st_size) < 0)
+                                       pexit(dent->d_name);
+-                              mklink_fs(fs, this_nod, dent->d_name, st.st_size, b);
++                              mklink_fs(fs, this_nod, dent->d_name, st.st_size, b, st.st_uid, st.st_gid, st.st_ctime);
+                               free(b);
+                               break;
+                       case S_IFREG:
+                               if(!(fh = fopen(dent->d_name, "r")))
+                                       pexit(dent->d_name);
+-                              mkfile_fs(fs, this_nod, dent->d_name, get_mode(&st), st.st_size, fh);
++                              mkfile_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_size, fh, st.st_uid, st.st_gid, st.st_ctime);
+                               fclose(fh);
+                               break;
+                       case S_IFDIR:
+-                              nod = mkdir_fs(fs, this_nod, dent->d_name, get_mode(&st));
++                              nod = mkdir_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
+                               if(chdir(dent->d_name) < 0)
+                                       pexit(dent->d_name);
+                               add2fs_from_dir(fs, nod);
+@@ -983,7 +945,7 @@
+ {
+       int i;
+       int nblk = nod->i_blocks / INOBLK;
+-      if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
++      if(nod->i_size && !nblk)
+               for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+                       nod->i_block[i] = swab32(nod->i_block[i]);
+       if(nblk <= EXT2_IND_BLOCK)
+@@ -1004,7 +966,7 @@
+ {
+       int i;
+       int nblk = nod->i_blocks / INOBLK;
+-      if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
++      if(nod->i_size && !nblk)
+               for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+                       nod->i_block[i] = swab32(nod->i_block[i]);
+       if(nblk <= EXT2_IND_BLOCK)
+@@ -1147,7 +1109,7 @@
+       // make lost+found directory and reserve blocks
+       if(fs->sb.s_r_blocks_count)
+       {
+-              nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU | FM_IRWXG | FM_IRWXO);
++              nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, 0, 0, time(NULL));
+               memset(b, 0, BLOCKSIZE);
+               ((directory*)b)->d_rec_len = BLOCKSIZE;
+               for(i = 1; i < fs->sb.s_r_blocks_count; i++)
+@@ -1472,6 +1434,150 @@
+               swap_badfs(fs);
+ }
++char *simple_ltoa(unsigned long i)
++{
++    /* 21 digits plus null terminator, good for 64-bit or smaller ints */
++    static char local[21];
++    char *p = local;
++    *p-- = '\0';
++    do {
++      *p-- = '0' + i % 10;
++      i /= 10;
++    } while (i > 0);
++    return p + 1;
++}
++
++//# device list table
++//# <path>    <type> <mode>   <uid>   <gid>   <major> <minor> <start> <inc>   <count>
++///dev/mem    c       640     0       0       1       1       0       0       -
++static int interpret_table_entry(filesystem *fs, char *line)
++{
++      int status;
++      char type, *path;
++      uint32 nod, nod2;
++      char *name, *dir;
++      unsigned long uid=0, gid=0, mode=755;
++      unsigned long major=0, minor=0, start=0, increment=1, count=0;
++
++      status = sscanf(line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu", 
++                  SCANF_STRING(path), &type, &mode, &uid, &gid, &major, &minor, 
++                  &start, &increment, &count); 
++      if (status<0)
++              return status;
++      
++      name = basename(path);
++      dir = dirname(path);
++      free(path);
++      if(!(nod = find_path(fs, EXT2_ROOT_INO, dir)))
++              errexit("can't find directory '%s' to create '%s''", dir, name);
++      free(dir);
++      if((!strcmp(name, ".")) || (!strcmp(name, "..")))
++      {
++              free(name);
++              return 1;
++      }
++      
++      switch(type)
++      {
++              case 'd':
++                      mkdir_fs(fs, nod, name, mode|FM_IFDIR, uid, gid, time(NULL));
++                      break;
++              case 'c':
++              case 'b':
++                      mode|= (type=='c')? FM_IFCHR : FM_IFBLK;
++                      if (count > 0) {
++                          int i, last;
++                          char buf[80];
++                          last = start+(count*increment);
++                          for(i = start; i<last; i++) {
++                              nod2 = alloc_nod(fs);
++                              ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor+(i*increment-start);
++                              ((uint8*)get_nod(fs, nod2)->i_block)[1] = major;
++                              strncpy(buf, name, sizeof(buf)-1);
++                              strncat(buf, simple_ltoa(i*increment), sizeof(buf)-1);
++                              buf[79]='\0';
++                              //fprintf(stderr, "start=%ld, i=%d adding '%s'(%ld, %ld)\n", start, i, buf, major, minor+(i*increment-start));
++                              add2dir(fs, nod, nod2, buf, mode, uid, gid, time(NULL));
++                          }
++                      }
++                      else {
++                          nod2 = alloc_nod(fs);
++                          ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor;
++                          ((uint8*)get_nod(fs, nod2)->i_block)[1] = major;
++                          add2dir(fs, nod, nod2, name, mode, uid, gid, time(NULL));
++                      }
++                      break;
++              default:
++                      fprintf(stderr,"%s: Type '%c' is not supported\n", path, type);
++
++      }
++      free(name);
++      return 0;
++}
++
++int parse_device_table(filesystem *fs, char *filename)
++{
++      FILE *file;
++      char *line;
++      int status = 0;
++      size_t length = 0;
++      struct stat statbuf;
++
++      if (!filename) {
++              fprintf(stderr, "No filename specified.\n");
++              return(1);
++      }
++      if (!(file = fopen(filename, "r"))) {
++              perror(filename);
++              return(1);
++      }
++      if (fstat(fileno(file), &statbuf) < 0) {
++              perror(filename);
++              return(1);
++      }
++
++      if (statbuf.st_size < 10) {
++              fprintf(stderr, "%s: not a proper device table file\n", filename);
++              return(1);
++      }
++
++      /* Looks ok so far.  The general plan now is to read in one
++       * line at a time, check for leading comment delimiters ('#'),
++       * then try and parse the line as a device table.  If we fail
++       * to parse things, try and help the poor fool to fix their
++       * device table with a useful error msg... */
++      line = NULL;
++      while (getline(&line, &length, file) != -1) {
++              /* First trim off any whitespace */
++              int len = strlen(line);
++              /* trim trailing whitespace */
++              while ( len > 0 && isspace(line[len-1]))
++                  line[--len]='\0';
++              /* trim leading whitespace */
++              memmove(line, &line[strspn(line, " \n\r\t\v")], len);
++
++              /* If this is NOT a comment line, try to interpret it */
++              if (length && *line!='#') {
++                      if (interpret_table_entry(fs, line))
++                              status=1;
++              }
++
++              free(line);
++              line = NULL;
++      }
++
++
++      return status;
++}
++
++/*
++Local Variables:
++c-file-style: "linux"
++c-basic-offset: 4
++tab-width: 4
++End:
++*/
++
+ void showhelp(void)
+ {
+       fprintf(stderr, "Usage: %s [options] image\n"
+@@ -1485,6 +1591,8 @@
+       "  -g path                 Generate a block map file for this path\n"
+       "  -e value                Fill unallocated blocks with value\n"
+       "  -z                      Make files with holes\n"
++      "  -n                      Do not squash permissions and owners.  By default everythig is\n"
++      "                              owned by root.  This perserves file permissions and owners.\n"
+       "  -v                      Print resulting filesystem structure\n"
+       "  -h                      Show this help\n\n"
+       "Example of spec file:\n"
+@@ -1520,22 +1628,21 @@
+       int bigendian = !*(char*)&endian;
+       filesystem *fs;
+       int i;
+-      int c;
++      char c;
++      char * devtable = NULL;
+       argv0 = argv[0];
+-      if(argc <= 1)
+-      {
+-              showhelp();
+-              exit(1);
+-      }
+-      while((c = getopt(argc, argv, "x:f:d:b:i:r:g:e:zvh")) != EOF)
++      while((c = getopt(argc, argv, "D:x:f:d:b:i:r:g:e:zvhn")) != EOF)
+               switch(c)
+               {
+                       case 'x':
+                               fsin = optarg;
+                               break;
+-                      case 'd':
++                      case 'D':
+                       case 'f':
++                              devtable = optarg;
++                              break;
++                      case 'd':
+                               dopt[didx++] = optarg;
+                               break;
+                       case 'b':
+@@ -1556,6 +1663,9 @@
+                       case 'z':
+                               holes = 1;
+                               break;
++                      case 'n':
++                              nosquash = 1;
++                              break;
+                       case 'v':
+                               verbose = 1;
+                               break;
+@@ -1595,17 +1705,10 @@
+       for(i = 0; i < didx; i++)
+       {
+               struct stat st;
+-              FILE *fh;
+               char *pdir;
+               stat(dopt[i], &st);
+               switch(st.st_mode & S_IFMT)
+               {
+-                      case S_IFREG:
+-                              if(!(fh = fopen(dopt[i], "r")))
+-                                      pexit(dopt[i]);
+-                              add2fs_from_file(fs, EXT2_ROOT_INO, fh);
+-                              fclose(fh);
+-                              break;
+                       case S_IFDIR:
+                               if(!(pdir = getcwd(0, GETCWD_SIZE)))
+                                       pexit(dopt[i]);
+@@ -1617,13 +1720,15 @@
+                               free(pdir);
+                               break;
+                       default:
+-                              errexit("%s in neither a file nor a directory", dopt[i]);
++                              errexit("%s must be a directory", dopt[i]);
+               }
+       }
+       if(emptyval)
+               for(i = 1; i < fs->sb.s_blocks_count; i++)
+                       if(!allocated(fs->bbm, i))
+                               memset(get_blk(fs, i), emptyval, BLOCKSIZE);
++      if(devtable)
++          parse_device_table(fs, devtable);
+       if(verbose)
+               print_fs(fs);
+       for(i = 0; i < gidx; i++)
index 3a358048ba96604f615cfbd5960d854361d73c36..02b1e511c79ea536ffdb7b91e2db9633bc9b70f4 100644 (file)
@@ -31,6 +31,11 @@ CONFIG_HOSTFS=y
 CONFIG_MCONSOLE=y
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_HOST_2G_2G is not set
+# CONFIG_UML_SMP is not set
+# CONFIG_SMP is not set
+CONFIG_CON_ZERO_CHAN="fd:0,fd:1"
+CONFIG_CON_CHAN="xterm"
+CONFIG_SSL_CHAN="pty"
 
 #
 # Loadable module support
@@ -49,6 +54,15 @@ CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=4096
 CONFIG_BLK_DEV_INITRD=y
 # CONFIG_MMAPPER is not set
+# CONFIG_UML_SOUND is not set
+# CONFIG_SOUND is not set
+# CONFIG_HOSTAUDIO is not set
+CONFIG_FD_CHAN=y
+CONFIG_NULL_CHAN=y
+CONFIG_PORT_CHAN=y
+CONFIG_PTY_CHAN=y
+CONFIG_TTY_CHAN=y
+CONFIG_XTERM_CHAN=y
 
 #
 # Networking options
@@ -283,6 +297,7 @@ CONFIG_NLS_CODEPAGE_932=m
 CONFIG_NLS_CODEPAGE_949=m
 CONFIG_NLS_CODEPAGE_874=m
 CONFIG_NLS_ISO8859_8=m
+# CONFIG_NLS_CODEPAGE_1250 is not set
 CONFIG_NLS_CODEPAGE_1251=m
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_2=m
@@ -299,6 +314,23 @@ CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=m
 
+#
+# 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
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
 #
 # Kernel hacking
 #
diff --git a/sources/skel.tar b/sources/skel.tar
deleted file mode 100644 (file)
index 592d85e..0000000
Binary files a/sources/skel.tar and /dev/null differ
diff --git a/sources/skel.tar.gz b/sources/skel.tar.gz
new file mode 100644 (file)
index 0000000..b351737
Binary files /dev/null and b/sources/skel.tar.gz differ
index becc56cb43cb8ec0d962ba90d307953eff7db937..a21ef0f76925952e90fbb00437b35e3b6009faaf 100644 (file)
@@ -1,18 +1,10 @@
 root:x:0:
-wheel:x:10:
-bin:x:1:bin,daemon
-daemon:x:2:bin,daemon
-sys:x:3:bin,adm
-adm:x:4:adm,daemon
+daemon:x:1:
+bin:x:2:
+sys:x:3:
+adm:x:4:
 tty:x:5:
 disk:x:6:
-lp:x:7:daemon,lp
-mem:x:8:
-kmem:x:9:
-operator:x:11:
-uucp:x:14:uucp
-dip:x:40:
-utmp:x:45:
-www:x:63:
-nobody:x:65534:
-users:x:100:
+utmp:x:43:
+staff:x:50:
+default:x:1000:
diff --git a/sources/target_skeleton/etc/init.d/S05ramdisk1 b/sources/target_skeleton/etc/init.d/S05ramdisk1
deleted file mode 100755 (executable)
index b8a6d70..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-# Build a ramdisk to overlay on /dev so we can scribble on it
-# all we want without needing rw access to the underlying filesystem
-
-SIZE=140
-INODES=1000
-
-echo -n "Building device ramdisk: "
-
-/bin/umount /dev/ram1 >/dev/null 2>&1
-
-/bin/dd if=/dev/zero of=/dev/ram1 bs=1k count=$SIZE >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-fi
-
-/sbin/mkfs.minix -n30 -i$INODES /dev/ram1 $SIZE >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-fi
-
-/bin/mount /dev/ram1 /mnt -t minix -o rw >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-fi
-
-/bin/cp -a /dev/* /mnt >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-fi
-
-/bin/umount /mnt >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-fi
-
-/bin/mount /dev/ram1 /dev -t minix -o rw >/dev/null 2>&1
-if [ $? != 0 ] ; then
-       echo "failed."
-       exit 1;
-else
-       echo "done." 
-fi
-
-exit 0
diff --git a/sources/target_skeleton/etc/init.d/S20syslogd b/sources/target_skeleton/etc/init.d/S20syslogd
deleted file mode 100755 (executable)
index a88a6ff..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-echo -n "Starting system log daemon: "
-# start syslogging
-/sbin/syslogd -m 0
-echo "ok"
-
-
diff --git a/sources/target_skeleton/etc/init.d/S50hostname b/sources/target_skeleton/etc/init.d/S50hostname
deleted file mode 100755 (executable)
index 7437bc2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-hostname tester.dev.null
diff --git a/sources/target_skeleton/etc/init.d/S50networking b/sources/target_skeleton/etc/init.d/S50networking
new file mode 100755 (executable)
index 0000000..7104f33
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# start lo all the time
+ifconfig lo 127.0.0.1 up
+route add -net 127.0.0.0 netmask 255.0.0.0 lo
+
+hostname dev.null
index f159816da98225b1a9c5f6717bfe4ced1cd6fa61..2e91bd1e651af3ede9c06caad118477a1b29de1e 100644 (file)
 # main rc script
 ::sysinit:/etc/init.d/rcS
 
-# main setup program
-::respawn:-/bin/sh
+# Set up a couple of getty's
+tty1::respawn:/sbin/getty 38400 tty1
+tty2::respawn:/sbin/getty 38400 tty2
 
-# convenience shell
-tty2::askfirst:-/bin/sh
+# Put a getty on the serial port
+#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
 
-# set up stuff for logging
-null::sysinit:/bin/dmesg > /dev/tty4
+# Logging junk
+tty2::once:/bin/touch /var/log/messages
 tty3::respawn:/usr/bin/tail -f /var/log/messages
+tty4::once:/bin/dmesg
 tty4::respawn:/usr/bin/tail -f /proc/kmsg
 
 # Stuff to do for the 3-finger salute
index 397ed3521b6f39808fa94c7d843d0677962abbdd..e7e879813e9a7e2989b37257ec4e587310b44255 100644 (file)
@@ -1,11 +1,12 @@
-root:x:0:0:root:/root:/bin/ash
-bin:x:1:1:bin:/bin:/bin/sh
-daemon:x:2:2:daemon:/usr/sbin:/bin/sh
-adm:x:3:4:adm:/adm:/bin/sh
-lp:x:4:7:lp:/var/spool/lpd:/bin/sh
-sync:x:5:0:sync:/bin:/bin/sync
-shutdown:x:6:11:shutdown:/sbin:/sbin/shutdown
-halt:x:7:0:halt:/sbin:/sbin/halt
-uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh
-operator:x:11:0:Operator:/var:/bin/sh
+root:x:0:0:root:/root:/bin/sh
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:100:sync:/bin:/bin/sync
+mail:x:8:8:mail:/var/spool/mail:/bin/sh
+proxy:x:13:13:proxy:/bin:/bin/sh
+www-data:x:33:33:www-data:/var/www:/bin/sh
+backup:x:34:34:backup:/var/backups:/bin/sh
+operator:x:37:37:Operator:/var:/bin/sh
 nobody:x:65534:65534:nobody:/home:/bin/sh
+default:x:1000:1000:Default non-root user:/home/default:/bin/sh
index 8797092a9172e3280d4c985a45eebf56714b25c1..66ef8fedfaf478ced368c6620e5a14b682331a71 100644 (file)
@@ -1,3 +1,4 @@
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 alias ll='ls -l'
 
 echo " "
index c8e983b72154ff00879981b58772b362d37b7e74..b175544a4ff69167d043e8433bbe296a9a596e4b 100644 (file)
@@ -1,21 +1,31 @@
-# protocols     This file describes the various protocols that are
-#               available from the TCP/IP subsystem.  It should be
-#               consulted instead of using the numbers in the ARPA
-#               include files, or, worse, just guessing them.
+# /etc/protocols:
+# $Id: protocols,v 1.2 2002/04/26 11:45:52 andersen Exp $
 #
-# Version:      @(#)/etc/protocols      2.00    04/30/93
+# Internet (IP) protocols
 #
-# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+#      from: @(#)protocols     5.1 (Berkeley) 4/17/89
 #
+# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
 
-ip      0       IP      # internet protocol, pseudo protocol number
-icmp    1       ICMP    # internet control message protocol
-igmp    2       IGMP    # internet group multicast protocol
-ggp     3       GGP     # gateway-gateway protocol
-tcp     6       TCP     # transmission control protocol
-pup     12      PUP     # PARC universal packet protocol
-udp     17      UDP     # user datagram protocol
-idp     22      IDP     # WhatsThis?
-raw     255     RAW     # RAW IP interface
-
-# End of protocols.
+ip     0       IP              # internet protocol, pseudo protocol number
+icmp   1       ICMP            # internet control message protocol
+igmp   2       IGMP            # Internet Group Management
+ggp    3       GGP             # gateway-gateway protocol
+ipencap        4       IP-ENCAP        # IP encapsulated in IP (officially ``IP'')
+st     5       ST              # ST datagram mode
+tcp    6       TCP             # transmission control protocol
+egp    8       EGP             # exterior gateway protocol
+pup    12      PUP             # PARC universal packet protocol
+udp    17      UDP             # user datagram protocol
+hmp    20      HMP             # host monitoring protocol
+xns-idp        22      XNS-IDP         # Xerox NS IDP
+rdp    27      RDP             # "reliable datagram" protocol
+iso-tp4        29      ISO-TP4         # ISO Transport Protocol class 4
+xtp    36      XTP             # Xpress Tranfer Protocol
+ddp    37      DDP             # Datagram Delivery Protocol
+idpr-cmtp      39      IDPR-CMTP       # IDPR Control Message Transport
+rspf   73      RSPF            #Radio Shortest Path First.
+vmtp   81      VMTP            # Versatile Message Transport
+ospf   89      OSPFIGP         # Open Shortest Path First IGP
+ipip   94      IPIP            # Yet Another IP encapsulation
+encap  98      ENCAP           # Yet Another IP encapsulation
index a030ff539ff275ea83a30607210b09924aeb181e..49d6e4c7ccf3d545319fbbecae9ba5cb52de37e2 100644 (file)
-#       $NetBSD: services,v 1.18 1996/03/26 00:07:58 mrg Exp $
+# /etc/services:
+# $Id: services,v 1.2 2002/04/26 11:45:52 andersen Exp $
 #
 # Network services, Internet style
 #
 # Note that it is presently the policy of IANA to assign a single well-known
 # port number for both TCP and UDP; hence, most entries here have two entries
 # even if the protocol doesn't support UDP operations.
-# Updated from RFC 1340, ``Assigned Numbers'' (July 1992).  Not all ports
+# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
 # are included, only the more common ones.
-#
-#       from: @(#)services      5.8 (Berkeley) 5/9/91
-#
-tcpmux          1/tcp           # TCP port service multiplexer
-echo            7/tcp
-echo            7/udp
-discard         9/tcp           sink null
-discard         9/udp           sink null
-systat          11/tcp          users
-daytime         13/tcp
-daytime         13/udp
-netstat         15/tcp
-qotd            17/tcp          quote
-msp             18/tcp          # message send protocol
-msp             18/udp          # message send protocol
-chargen         19/tcp          ttytst source
-chargen         19/udp          ttytst source
-ftp-data        20/tcp          # default ftp data port
-ftp             21/tcp
-ssh             22/tcp
-ssh             22/udp
-telnet          23/tcp
+
+tcpmux         1/tcp                           # TCP port service multiplexer
+echo           7/tcp
+echo           7/udp
+discard                9/tcp           sink null
+discard                9/udp           sink null
+systat         11/tcp          users
+daytime                13/tcp
+daytime                13/udp
+netstat                15/tcp
+qotd           17/tcp          quote
+msp            18/tcp                          # message send protocol
+msp            18/udp                          # message send protocol
+chargen                19/tcp          ttytst source
+chargen                19/udp          ttytst source
+ftp-data       20/tcp
+ftp            21/tcp
+fsp            21/udp          fspd
+ssh            22/tcp                          # SSH Remote Login Protocol
+ssh            22/udp                          # SSH Remote Login Protocol
+telnet         23/tcp
 # 24 - private
-smtp            25/tcp          mail
+smtp           25/tcp          mail
 # 26 - unassigned
-time            37/tcp          timserver
-time            37/udp          timserver
-rlp             39/udp          resource        # resource location
-nameserver      42/tcp          name            # IEN 116
-whois           43/tcp          nicname
-domain          53/tcp          nameserver      # name-domain server
-domain          53/udp          nameserver
-mtp             57/tcp                          # deprecated
-bootps          67/tcp          # BOOTP server
-bootps          67/udp
-bootpc          68/tcp          # BOOTP client
-bootpc          68/udp
-tftp            69/udp
-gopher          70/tcp          # Internet Gopher
-gopher          70/udp
-rje             77/tcp          netrjs
-finger          79/tcp
-www             80/tcp          http    # WorldWideWeb HTTP
-www             80/udp                  # HyperText Transfer Protocol
-link            87/tcp          ttylink
-kerberos        88/tcp          krb5    # Kerberos v5
-kerberos        88/udp
-supdup          95/tcp
+time           37/tcp          timserver
+time           37/udp          timserver
+rlp            39/udp          resource        # resource location
+nameserver     42/tcp          name            # IEN 116
+whois          43/tcp          nicname
+re-mail-ck     50/tcp                          # Remote Mail Checking Protocol
+re-mail-ck     50/udp                          # Remote Mail Checking Protocol
+domain         53/tcp          nameserver      # name-domain server
+domain         53/udp          nameserver
+mtp            57/tcp                          # deprecated
+bootps         67/tcp                          # BOOTP server
+bootps         67/udp
+bootpc         68/tcp                          # BOOTP client
+bootpc         68/udp
+tftp           69/udp
+gopher         70/tcp                          # Internet Gopher
+gopher         70/udp
+rje            77/tcp          netrjs
+finger         79/tcp
+www            80/tcp          http            # WorldWideWeb HTTP
+www            80/udp                          # HyperText Transfer Protocol
+link           87/tcp          ttylink
+kerberos       88/tcp          kerberos5 krb5  # Kerberos v5
+kerberos       88/udp          kerberos5 krb5  # Kerberos v5
+supdup         95/tcp
 # 100 - reserved
-hostnames       101/tcp         hostname        # usually from sri-nic
-iso-tsap        102/tcp         tsap            # part of ISODE.
-csnet-ns        105/tcp         cso-ns  # also used by CSO name server
-csnet-ns        105/udp         cso-ns
-rtelnet         107/tcp         # Remote Telnet
-rtelnet         107/udp
-pop2            109/tcp         pop-2 postoffice        # POP version 2
-pop2            109/udp
-pop3            110/tcp         pop-3 # POP version 3
-pop3            110/udp
-sunrpc          111/tcp
-sunrpc          111/udp
-auth            113/tcp         authentication tap ident
-sftp            115/tcp
-uucp-path       117/tcp
-nntp            119/tcp         readnews untp   # USENET News Transfer Protocol
-ntp             123/tcp
-ntp             123/udp                         # Network Time Protocol
-netbios-ns      137/tcp                         # NETBIOS Name Service
-netbios-ns      137/udp
-netbios-dgm     138/tcp                         # NETBIOS Datagram Service
-netbios-dgm     138/udp
-netbios-ssn     139/tcp                         # NETBIOS session service
-netbios-ssn     139/udp
-imap2           143/tcp         imap            # Interim Mail Access Proto v2
-imap2           143/udp
-snmp            161/udp                         # Simple Net Mgmt Proto
-snmp-trap       162/udp         snmptrap        # Traps for SNMP
-cmip-man        163/tcp                         # ISO mgmt over IP (CMOT)
-cmip-man        163/udp
-cmip-agent      164/tcp
-cmip-agent      164/udp
-xdmcp           177/tcp                         # X Display Mgr. Control Proto
-xdmcp           177/udp
-nextstep        178/tcp         NeXTStep NextStep       # NeXTStep window
-nextstep        178/udp         NeXTStep NextStep       # server
-bgp             179/tcp                         # Border Gateway Proto.
-bgp             179/udp
-prospero        191/tcp                         # Cliff Neuman's Prospero
-prospero        191/udp
-irc             194/tcp                         # Internet Relay Chat
-irc             194/udp
-smux            199/tcp                         # SNMP Unix Multiplexer
-smux            199/udp
-at-rtmp         201/tcp                         # AppleTalk routing
-at-rtmp         201/udp
-at-nbp          202/tcp                         # AppleTalk name binding
-at-nbp          202/udp
-at-echo         204/tcp                         # AppleTalk echo
-at-echo         204/udp
-at-zis          206/tcp                         # AppleTalk zone information
-at-zis          206/udp
-z3950           210/tcp         wais            # NISO Z39.50 database
-z3950           210/udp         wais
-ipx             213/tcp                         # IPX
-ipx             213/udp
-imap3           220/tcp                         # Interactive Mail Access
-imap3           220/udp                         # Protocol v3
-ulistserv       372/tcp                         # UNIX Listserv
-ulistserv       372/udp
+hostnames      101/tcp         hostname        # usually from sri-nic
+iso-tsap       102/tcp         tsap            # part of ISODE.
+csnet-ns       105/tcp         cso-ns          # also used by CSO name server
+csnet-ns       105/udp         cso-ns
+# unfortunately the poppassd (Eudora) uses a port which has already
+# been assigned to a different service. We list the poppassd as an
+# alias here. This should work for programs asking for this service.
+# (due to a bug in inetd the 3com-tsmux line is disabled)
+#3com-tsmux    106/tcp         poppassd
+#3com-tsmux    106/udp         poppassd
+rtelnet                107/tcp                         # Remote Telnet
+rtelnet                107/udp
+pop-2          109/tcp         postoffice      # POP version 2
+pop-2          109/udp
+pop-3          110/tcp                         # POP version 3
+pop-3          110/udp
+sunrpc         111/tcp         portmapper      # RPC 4.0 portmapper TCP
+sunrpc         111/udp         portmapper      # RPC 4.0 portmapper UDP
+auth           113/tcp         authentication tap ident
+sftp           115/tcp
+uucp-path      117/tcp
+nntp           119/tcp         readnews untp   # USENET News Transfer Protocol
+ntp            123/tcp
+ntp            123/udp                         # Network Time Protocol
+netbios-ns     137/tcp                         # NETBIOS Name Service
+netbios-ns     137/udp
+netbios-dgm    138/tcp                         # NETBIOS Datagram Service
+netbios-dgm    138/udp
+netbios-ssn    139/tcp                         # NETBIOS session service
+netbios-ssn    139/udp
+imap2          143/tcp                         # Interim Mail Access Proto v2
+imap2          143/udp
+snmp           161/udp                         # Simple Net Mgmt Proto
+snmp-trap      162/udp         snmptrap        # Traps for SNMP
+cmip-man       163/tcp                         # ISO mgmt over IP (CMOT)
+cmip-man       163/udp
+cmip-agent     164/tcp
+cmip-agent     164/udp
+xdmcp          177/tcp                         # X Display Mgr. Control Proto
+xdmcp          177/udp
+nextstep       178/tcp         NeXTStep NextStep       # NeXTStep window
+nextstep       178/udp         NeXTStep NextStep       # server
+bgp            179/tcp                         # Border Gateway Proto.
+bgp            179/udp
+prospero       191/tcp                         # Cliff Neuman's Prospero
+prospero       191/udp
+irc            194/tcp                         # Internet Relay Chat
+irc            194/udp
+smux           199/tcp                         # SNMP Unix Multiplexer
+smux           199/udp
+at-rtmp                201/tcp                         # AppleTalk routing
+at-rtmp                201/udp
+at-nbp         202/tcp                         # AppleTalk name binding
+at-nbp         202/udp
+at-echo                204/tcp                         # AppleTalk echo
+at-echo                204/udp
+at-zis         206/tcp                         # AppleTalk zone information
+at-zis         206/udp
+qmtp           209/tcp                         # The Quick Mail Transfer Protocol
+qmtp           209/udp                         # The Quick Mail Transfer Protocol
+z3950          210/tcp         wais            # NISO Z39.50 database
+z3950          210/udp         wais
+ipx            213/tcp                         # IPX
+ipx            213/udp
+imap3          220/tcp                         # Interactive Mail Access
+imap3          220/udp                         # Protocol v3
+ulistserv      372/tcp                         # UNIX Listserv
+ulistserv      372/udp
+https          443/tcp                         # MCom
+https          443/udp                         # MCom
+snpp           444/tcp                         # Simple Network Paging Protocol
+snpp           444/udp                         # Simple Network Paging Protocol
+saft           487/tcp                         # Simple Asynchronous File Transfer
+saft           487/udp                         # Simple Asynchronous File Transfer
+npmp-local     610/tcp         dqs313_qmaster  # npmp-local / DQS
+npmp-local     610/udp         dqs313_qmaster  # npmp-local / DQS
+npmp-gui       611/tcp         dqs313_execd    # npmp-gui / DQS
+npmp-gui       611/udp         dqs313_execd    # npmp-gui / DQS
+hmmp-ind       612/tcp         dqs313_intercell# HMMP Indication / DQS
+hmmp-ind       612/udp         dqs313_intercell# HMMP Indication / DQS
 #
 # UNIX specific services
 #
-exec            512/tcp
-biff            512/udp         comsat
-login           513/tcp
-who             513/udp         whod
-shell           514/tcp         cmd             # no passwords used
-syslog          514/udp
-printer         515/tcp         spooler         # line printer spooler
-talk            517/udp
-ntalk           518/udp
-route           520/udp         router routed   # RIP
-timed           525/udp         timeserver
-tempo           526/tcp         newdate
-courier         530/tcp         rpc
-conference      531/tcp         chat
-netnews         532/tcp         readnews
-netwall         533/udp                         # -for emergency broadcasts
-uucp            540/tcp         uucpd           # uucp daemon
-remotefs        556/tcp         rfs_server rfs  # Brunhoff remote filesystem
-#
-webster         765/tcp                         # Network dictionary
-webster         765/udp
-# temporary entry (not officially registered by the Samba Team!)
-swat            901/tcp         # Samba Web Administration Tool
+exec           512/tcp
+biff           512/udp         comsat
+login          513/tcp
+who            513/udp         whod
+shell          514/tcp         cmd             # no passwords used
+syslog         514/udp
+printer                515/tcp         spooler         # line printer spooler
+talk           517/udp
+ntalk          518/udp
+route          520/udp         router routed   # RIP
+timed          525/udp         timeserver
+tempo          526/tcp         newdate
+courier                530/tcp         rpc
+conference     531/tcp         chat
+netnews                532/tcp         readnews
+netwall                533/udp                         # -for emergency broadcasts
+uucp           540/tcp         uucpd           # uucp daemon
+afpovertcp     548/tcp                         # AFP over TCP
+afpovertcp     548/udp                         # AFP over TCP
+remotefs       556/tcp         rfs_server rfs  # Brunhoff remote filesystem
+klogin         543/tcp                         # Kerberized `rlogin' (v5)
+kshell         544/tcp         krcmd           # Kerberized `rsh' (v5)
+kerberos-adm   749/tcp                         # Kerberos `kadmin' (v5)
+#
+webster                765/tcp                         # Network dictionary
+webster                765/udp
 #
 # From ``Assigned Numbers'':
 #
@@ -157,37 +182,116 @@ swat            901/tcp         # Samba Web Administration Tool
 #> does register or list uses of these ports as a convienence to the
 #> community.
 #
-ingreslock      1524/tcp
-ingreslock      1524/udp
-prospero-np     1525/tcp                # Prospero non-privileged
-prospero-np     1525/udp
-rfe             5002/tcp                # Radio Free Ethernet
-rfe             5002/udp                # Actually uses UDP only
+ingreslock     1524/tcp
+ingreslock     1524/udp
+prospero-np    1525/tcp                        # Prospero non-privileged
+prospero-np    1525/udp
+datametrics    1645/tcp        old-radius      # datametrics / old radius entry
+datametrics    1645/udp        old-radius      # datametrics / old radius entry
+sa-msg-port    1646/tcp        old-radacct     # sa-msg-port / old radacct entry
+sa-msg-port    1646/udp        old-radacct     # sa-msg-port / old radacct entry
+radius         1812/tcp                        # Radius
+radius         1812/udp                        # Radius
+radacct                1813/tcp                        # Radius Accounting
+radacct                1813/udp                        # Radius Accounting
+cvspserver     2401/tcp                        # CVS client/server operations
+cvspserver     2401/udp                        # CVS client/server operations
+mysql          3306/tcp                        # MySQL
+mysql          3306/udp                        # MySQL
+rfe            5002/tcp                        # Radio Free Ethernet
+rfe            5002/udp                        # Actually uses UDP only
+cfengine       5308/tcp                        # CFengine
+cfengine       5308/udp                        # CFengine
+bbs            7000/tcp                        # BBS service
 #
 #
 # Kerberos (Project Athena/MIT) services
-# Note that these are for Kerberos v4, and are unofficial.
-#
-klogin          543/tcp                 # Kerberos `rlogin'
-kshell          544/tcp         krcmd   # Kerberos `rsh'
-kerberos-adm    749/tcp                 # Kerberos `kadmin' (v5)
-kerberos4       750/udp         kdc     # Kerberos (server) udp
-kerberos4       750/tcp         kdc     # Kerberos (server) tcp
-kerberos-master 751/udp                 # Kerberos admin server udp
-kerberos-master 751/tcp                 # Kerberos admin server tcp
-krbupdate       760/tcp         kreg    # BSD Kerberos registration
-kpasswd         761/tcp         kpwd    # BSD Kerberos `passwd'
-eklogin         2105/tcp                # Kerberos encrypted `rlogin'
+# Note that these are for Kerberos v4, and are unofficial.  Sites running
+# v4 should uncomment these and comment out the v5 entries above.
+#
+kerberos4      750/udp         kerberos-iv kdc # Kerberos (server) udp
+kerberos4      750/tcp         kerberos-iv kdc # Kerberos (server) tcp
+kerberos_master        751/udp                         # Kerberos authentication
+kerberos_master        751/tcp                         # Kerberos authentication
+passwd_server  752/udp                         # Kerberos passwd server
+krb_prop       754/tcp                         # Kerberos slave propagation
+krbupdate      760/tcp         kreg            # Kerberos registration
+kpasswd                761/tcp         kpwd            # Kerberos "passwd"
+kpop           1109/tcp                        # Pop with Kerberos
+knetd          2053/tcp                        # Kerberos de-multiplexor
+zephyr-srv     2102/udp                        # Zephyr server
+zephyr-clt     2103/udp                        # Zephyr serv-hm connection
+zephyr-hm      2104/udp                        # Zephyr hostmanager
+eklogin                2105/tcp                        # Kerberos encrypted rlogin
 #
 # Unofficial but necessary (for NetBSD) services
 #
-supfilesrv      871/tcp                 # SUP server
-supfiledbg      1127/tcp                # SUP debugging
+supfilesrv     871/tcp                         # SUP server
+supfiledbg     1127/tcp                        # SUP debugging
+#
+# Datagram Delivery Protocol services
 #
-# AppleTalk DDP entries (DDP: Datagram Delivery Protocol)
+rtmp           1/ddp                           # Routing Table Maintenance Protocol
+nbp            2/ddp                           # Name Binding Protocol
+echo           4/ddp                           # AppleTalk Echo Protocol
+zip            6/ddp                           # Zone Information Protocol
 #
-rtmp            1/ddp                   # Routing Table Maintenance Protocol
-nbp             2/ddp                   # Name Binding Protocol
-echo            4/ddp                   # AppleTalk Echo Protocol
-zip             6/ddp                   # Zone Information Protocol
+# Services added for the Debian GNU/Linux distribution
+poppassd       106/tcp                         # Eudora
+poppassd       106/udp                         # Eudora
+mailq          174/tcp                         # Mailer transport queue for Zmailer
+mailq          174/tcp                         # Mailer transport queue for Zmailer
+omirr          808/tcp         omirrd          # online mirror
+omirr          808/udp         omirrd          # online mirror
+rmtcfg         1236/tcp                        # Gracilis Packeten remote config server
+xtel           1313/tcp                        # french minitel
+coda_opcons    1355/udp                        # Coda opcons            (Coda fs)
+coda_venus     1363/udp                        # Coda venus             (Coda fs)
+coda_auth      1357/udp                        # Coda auth              (Coda fs)
+coda_udpsrv    1359/udp                        # Coda udpsrv            (Coda fs)
+coda_filesrv   1361/udp                        # Coda filesrv           (Coda fs)
+codacon                1423/tcp        venus.cmu       # Coda Console           (Coda fs)
+coda_aux1      1431/tcp                        # coda auxiliary service (Coda fs)
+coda_aux1      1431/udp                        # coda auxiliary service (Coda fs)
+coda_aux2      1433/tcp                        # coda auxiliary service (Coda fs)
+coda_aux2      1433/udp                        # coda auxiliary service (Coda fs)
+coda_aux3      1435/tcp                        # coda auxiliary service (Coda fs)
+coda_aux3      1435/udp                        # coda auxiliary service (Coda fs)
+cfinger                2003/tcp                        # GNU Finger
+afbackup       2988/tcp                        # Afbackup system
+afbackup       2988/udp                        # Afbackup system
+icp            3130/tcp                        # Internet Cache Protocol (Squid)
+icp            3130/udp                        # Internet Cache Protocol (Squid)
+postgres       5432/tcp                        # POSTGRES
+postgres       5432/udp                        # POSTGRES
+fax            4557/tcp                        # FAX transmission service        (old)
+hylafax                4559/tcp                        # HylaFAX client-server protocol  (new)
+noclog         5354/tcp                        # noclogd with TCP (nocol)
+noclog         5354/udp                        # noclogd with UDP (nocol)
+hostmon                5355/tcp                        # hostmon uses TCP (nocol)
+hostmon                5355/udp                        # hostmon uses TCP (nocol)
+ircd           6667/tcp                        # Internet Relay Chat
+ircd           6667/udp                        # Internet Relay Chat
+webcache       8080/tcp                        # WWW caching service
+webcache       8080/udp                        # WWW caching service
+tproxy         8081/tcp                        # Transparent Proxy
+tproxy         8081/udp                        # Transparent Proxy
+mandelspawn    9359/udp        mandelbrot      # network mandelbrot
+amanda         10080/udp                       # amanda backup services
+amandaidx      10082/tcp                       # amanda backup services
+amidxtape      10083/tcp                       # amanda backup services
+isdnlog                20011/tcp                       # isdn logging system
+isdnlog                20011/udp                       # isdn logging system
+vboxd          20012/tcp                       # voice box system
+vboxd          20012/udp                       # voice box system
+binkp           24554/tcp                      # Binkley
+binkp           24554/udp                      # Binkley
+asp            27374/tcp                       # Address Search Protocol
+asp            27374/udp                       # Address Search Protocol
+tfido           60177/tcp                      # Ifmail
+tfido           60177/udp                      # Ifmail
+fido            60179/tcp                      # Ifmail
+fido            60179/udp                      # Ifmail
+
+# Local services
 
index d2cccb9987e74683c741079a634f2e184d31f699..4941a1ac53519d1de9318ac22dc9c870e306b74d 100644 (file)
@@ -9,3 +9,4 @@ halt:*:10933:0:99999:7:::
 uucp:*:10933:0:99999:7:::
 operator:*:10933:0:99999:7:::
 nobody:*:10933:0:99999:7:::
+default::10933:0:99999:7:::
diff --git a/sources/uClibc-Config.awk b/sources/uClibc-Config.awk
deleted file mode 100644 (file)
index c265535..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-BEGIN { FS=" ="; 
-        REG1="DODEBUG|INCLUDE_RPC|DOPIC";
-        REG2="DOLFS";
-}
-{  
-   if ($0 ~ "^" REG1) 
-     { print $1 " = false" } 
-   else if ($0 ~ "^" REG2)
-     { print $1 " = true" }
-   else { print $0 } 
-}