[oe] [PATCH] foonas-init: remove broken and unused recipe.

Graham Gower graham.gower at gmail.com
Tue Sep 14 04:15:45 UTC 2010


This recipe has references to non existant files in its SRC_URI, I could not
find them in the git logs either.
A grep -r foonas-init shows no in tree users.

Signed-off-by: Graham Gower <graham.gower at gmail.com>
---
 recipes/foonas-init/files/conffiles       |   55 --
 recipes/foonas-init/files/functions       |  413 --------------
 recipes/foonas-init/files/links.conf      |    6 -
 recipes/foonas-init/files/modulefunctions |   39 --
 recipes/foonas-init/files/reflash         |  163 ------
 recipes/foonas-init/files/sysconf         |  793 --------------------------
 recipes/foonas-init/files/turnup          |  861 -----------------------------
 recipes/foonas-init/foonas-init_0.10.bb   |  121 ----
 8 files changed, 0 insertions(+), 2451 deletions(-)
 delete mode 100644 recipes/foonas-init/files/conffiles
 delete mode 100644 recipes/foonas-init/files/functions
 delete mode 100644 recipes/foonas-init/files/links.conf
 delete mode 100644 recipes/foonas-init/files/modulefunctions
 delete mode 100644 recipes/foonas-init/files/reflash
 delete mode 100644 recipes/foonas-init/files/sysconf
 delete mode 100644 recipes/foonas-init/files/turnup
 delete mode 100644 recipes/foonas-init/foonas-init_0.10.bb

diff --git a/recipes/foonas-init/files/conffiles b/recipes/foonas-init/files/conffiles
deleted file mode 100644
index e1408a3..0000000
--- a/recipes/foonas-init/files/conffiles
+++ /dev/null
@@ -1,55 +0,0 @@
-# conffiles
-# Known SlugOS configuration files.  These files are preserved on
-# a flash upgrade.  Other configuration files, found from:
-#
-#    /usr/lib/ipkg/*.conffiles
-#    /etc/*.conf
-#
-# are preserved too with an operation of 'diff' if they have been
-# changed since /etc/.configured was created.
-#
-# Lines starting with # are comments, other lines have
-# two fields:
-#
-# operation file 
-#
-# The file must *NOT* have a leading /
-#
-# operation may be:
-#   ignore    Do not preserve this file
-#   preserve  Preserve this file unconditionally
-#   diff      Compare file with the new version, ask if different
-#
-preserve	linuxrc
-preserve	etc/.configured
-preserve	etc/TZ
-diff		etc/default/conffiles
-diff		etc/default/devpts
-preserve	etc/default/rcS
-preserve	etc/default/sysconf
-diff		etc/default/usbd
-preserve	etc/defaultdomain
-preserve	etc/dropbear/dropbear_dss_host_key
-preserve	etc/dropbear/dropbear_rsa_host_key
-preserve	etc/ssh/ssh_host_dsa_key
-preserve	etc/ssh/ssh_host_dsa_key.pub
-preserve	etc/ssh/ssh_host_rsa_key
-preserve	etc/ssh/ssh_host_rsa_key.pub
-preserve	etc/fstab
-preserve	etc/group
-preserve	etc/gshadow
-preserve	etc/hostname
-preserve	etc/hosts
-preserve	etc/localtime
-ignore		etc/modules
-ignore		etc/modules.conf
-preserve	etc/motd
-preserve	etc/network/interfaces
-preserve	etc/ntp.drift
-preserve	etc/passwd
-preserve	etc/profile
-preserve	etc/resolv.conf
-preserve	etc/shadow
-preserve	etc/syslog.conf
-preserve	etc/timezone
-preserve	root/.ssh/authorized_keys
diff --git a/recipes/foonas-init/files/functions b/recipes/foonas-init/files/functions
deleted file mode 100644
index 2108288..0000000
--- a/recipes/foonas-init/files/functions
+++ /dev/null
@@ -1,413 +0,0 @@
-#!/bin/sh
-# . this file to load the following utility functions
-#
-# hardware
-#  the 'Hardware' string from cpuinfo, or, if not found
-#  try a little harder with 'machine'
-hardware(){
-	local hdw
-        hdw=`sed -n 's!^Hardware	*: !!p' /proc/cpuinfo`
-	test -n "$hdw" || {
-		hdw=`sed -n 's!^machine		*: !!p' /proc/cpuinfo`
-	}
-	echo $hdw
-}
-#
-# machine
-#  outputs an identifier of the current machine - i.e. the board
-#  slugos is running on.
-machine(){
-	case "$(hardware)" in
-	*Coyote*)	echo coyote;;
-	*IXDPG425*)	echo ixdpg425;;
-	*WRV54G*)	echo wrv54g;;
-	*IXDP425*)	echo ixdp425;;
-	*IXDP465*)	echo ixdp465;;
-	*IXCDP1100*)	echo ixcdp1100*;;
-	*Avila*)	echo avila;;
-	*Loft*)		echo loft;;
-	*NAS?100d*)	echo nas100d;;
-	*NSLU2*)	echo nslu2;;
-	*StorCenter*)	echo storcenter;;
-	*)		echo unknown;;
-	esac
-}
-#
-# single_user_ok
-#  if the machine is capable of single user interaction return
-#  true, else return false.  The result of this function is
-#  preempted by setting SULOGIN to 'yes' or 'ok' in /etc/default/rcS
-single_user_ok() {
-	# list known good machines in the 'case'
-	test "$SULOGIN" = yes -o "$SULOGIN" = ok ||
-		case "$(machine)" in
-		ixdp*|avila|loft)
-			test "$SULOGIN" != never;;
-		*)	return 1;;
-		esac
-}
-#
-# load_functions "source"
-#  load the functions in '/sbin/source' - relies on /sbin/source being
-#  a shell script and having support for this function.
-load_functions(){
-	test -n "$1" -a -x "/sbin/$1" && . "/sbin/$1" || {
-		echo "$0: /sbin/$1: script not found" >&2
-		return 1
-	}
-}
-#
-# mtdev "name"
-#  return (output) the character device name for flash parition "name"
-#  /proc/mtd has the general form:
-#    dev:    size   erasesize  name
-#    mtd5: 00020000 00020000 "FIS directory"
-#  use this rather than hard-wiring the device because the partition
-#  table can change - looking in /proc/mtd is more reliable.
-mtdev(){
-	if test $(machine) = storcenter ; then                               
-	sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtd/\1!p' /proc/mtd
-	else
-	sed -n 's!^\(mtd[0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/\1!p' /proc/mtd
-	fi
-}
-#
-# mtblockdev "name"
-#  as mtdev but output the name of the block (not character) device
-mtblockdev(){
-	if test "$(machine)" = storcenter ; then
-	sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtdblock/\1!p' /proc/mtd
-	else
-	sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtdblock\1!p' /proc/mtd
-	fi
-}
-#
-# mtsize "name"
-#  the size of the partition as a hexadecimal value (with 0x at the front)
-mtsize(){
-	sed -n 's!^mtd[0-9][0-9]*: \([^ ]*\)[^"]*"'"$1"'"$!0x\1!p' /proc/mtd
-}
-#
-# sysvalmatch "section" "name" 'pattern' "configuration file"
-# sysvalof "section" "name" "configuration file"
-# sysval "section" "name"
-#  outputs the value of the SysConf variable 'name' from section 'section',
-#  if there are multiple definitions only the last is output
-# NOTE: these functions should only be used internally, add entries to 'config'
-#  below if necessary.  This is because 'config' does the defaulting.
-sysvalmatch(){
-	sed -n '/^\['"$1"'\]$/,/^\[.*\]$/s/^'"$2"'=\('"$3"'\)$/\1/p' "$4" | sed -n '$p'
-}
-sysvalof(){
-	sysvalmatch "$1" "$2" '.*' "$3"
-}
-sysval(){
-	test -r "$config_root/etc/default/sysconf" &&
-		sysvalof "$1" "$2" "$config_root/etc/default/sysconf"
-}
-#
-# syssection "section"
-#  outputs all the values from the given section changed to the format "name value"
-#  (i.e. the '=' is dropped).
-syssection(){
-	test -r "$config_root/etc/default/sysconf" &&
-		sed -n '/^\['"$1"'\]$/,/^\[.*\]$/s/^\([^=]*\)=\(.*\)$/\1 \2/p' "$config_root/etc/default/sysconf"
-}
-#
-# config "value"
-#  convenience callers for specific values to avoid mis-typing in scripts
-#  NOTE: this function does the defaulting, 'sysval' does not!
-# config_root: if set this will override the root where config/sysval
-#              looks for /etc/default/sysconf
-config(){
-	local mac
-	mac="$(test -r /proc/net/maclist &&
-		sed -n '/^[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]$/p' /proc/net/maclist |
-		sed -n 1p)"
-	#
-	case "$1" in
-	mac)	test -n "$mac" && echo "$mac";;
-	host)	if test -n "$(sysval network disk_server_name)"
-		then
-			sysval network disk_server_name
-		elif test -n "$(sysval network default_server_name)"
-		then
-			sysval network default_server_name
-		elif test -n "$mac"
-		then
-			echo "$mac" | sed -n 's/^\(..\):\(..\):\(..\):\(..\):\(..\):\(..\)$/slug\1\2\3\4\5\6/p'
-		else
-			# because we want the name to remain constant:
-			echo "turbostation"
-		fi;;
-	domain)	sysval network w_d_name;;
-	iface)  if test -n "$(sysval network lan_interface)"
-		then
-			sysval network lan_interface
-		else
-			echo eth0
-		fi;;
-	ip)	if test -n "$(sysval network ip_addr)"
-		then
-			sysval network ip_addr
-		else
-			echo 192.168.1.16
-		fi;;
-	netmask)sysval network netmask;;
-	gateway)sysval network gateway;;
-	dns)	sysval network dns_server1;;
-	dns2)	sysval network dns_server2;;
-	dns3)	sysval network dns_server3;;
-	boot)	if test -n "$(sysval network bootproto)"
-		then
-			sysval network bootproto
-		else
-			echo dhcp
-		fi;;
-	valid)	test -r "$config_root/etc/default/sysconf" -a -n "$mac";;
-	*)	return 1;;
-	esac
-}
-#
-# checkif "iface"
-#  Validate an interface name by making sure that it exists
-#  in /proc/net/dev (and is not lo).  The listing outputs the
-#  interface followed by a :, the check function looks for
-#  something of the form '$1[a-zA-Z0-9]*:' and outputs the
-#  part preceding the ':'
-checkif(){
-	sed -n '/^[ 	]*lo:/d;s/^[ 	]*\('"$1"'[a-zA-Z0-9]*\):.*$/\1/p;tE;d;:E;q' /proc/net/dev
-}
-#
-# checkmount "mountpoint"
-#  tests an already mounted mountpoint to see whether to attempt to
-#  boot with this as root.  Returns success if it appears ok.
-checkmount(){
-	# basic test for init (the kernel will try to load this)
-	# but require a shell in bin/sh too
-	test	\( -d "$1/mnt" \) -a \
-		\( -x "$1/bin/sh" -o -h "$1/bin/sh" \) -a \
-		\( -x "$1/usr/sbin/chroot" -o -h "$1/usr/sbin/chroot" -o \
-		   -x "$1/sbin/chroot" -o -h "$1/sbin/chroot" \) -a \
-		\( -x "$1/sbin/init" -o -h "$1/sbin/init" -o \
-		   -x "$1/etc/init" -o -h "$1/etc/init" -o \
-		   -x "$1/bin/init" -o -h "$1/bin/init" \)
-}
-#
-# swivel "new root" "old root"
-#  NOTE: the arguments must be paths relative to /, bad things
-#  will happen if the arguments themselves start with /
-#  Pivot to a new root.  This does all the fancy pivot_root stuff
-#  including closing streams and does a umount /proc - it doesn't
-#  matter if this fails (failure codes are ignored), but if /proc
-#  was mounted it must be restored by the caller on return.
-#  Normally this function never returns!
-#  On return 0,1,2 are connected to /dev/console - this may not
-#  have been true before!
-swivel(){
-	cd "$1"
-	exec <&- >&- 2>&-
-	# This is just-in-case the called mounted /proc and was
-	# unable to close it because of the streams
-	umount /proc 2>/dev/null
-	if pivot_root . "$2"
-	then
-		# everything must move out of the old root, this process
-		# is $2/bin/sh so it must die, IO is redirected
-		# just in case - typically it will be to a device so it
-		# won't hold the old root open.
-		# the exec here is the first point at which the old root
-		# is unused - before the exec regardless of the close of
-		# 0,1,2 above ash still has *this* shell script open!
-		# (it's on fd 10).
-		# init closes all file descriptors, there's no point
-		# supplying it with fds.
-		# NOTE: this used to use $2/usr/sbin/chroot, however on
-		# linux / is already . when the command is executed
-		# therefore it is essential to use the local (new root)
-		# chroot to ensure it gets the correct shared libraries.
-		if test -x usr/sbin/chroot -o -h usr/sbin/chroot
-		then
-			chroot=usr/sbin/chroot
-		elif test -x sbin/chroot -o -h sbin/chroot
-		then
-			chroot=sbin/chroot
-		else
-			chroot=chroot
-		fi
-		#
-		exec "$chroot" . bin/sh -c "\
-			test -x sbin/init && exec sbin/init
-			test -x etc/init && exec etc/init
-			test -x bin/init && exec bin/init
-			mount -t sysfs sysfs /mnt
-			umount /mnt
-			sync;sync;sync
-			exit 1"
-	fi
-	#
-	# recovery - must restore the old root
-	cd "$2"
-	sbin/pivot_root . "$1"
-	# cd is back to $1 - either pivot_root doesn't change it and the
-	# chroot above was not executed, or pivot_root does change it and
-	# has just changed it back!
-	exec <>/dev/console >&0 2>&0
-}
-#
-# ifup "interface"
-#  bring that interface up with the configured ip and other
-#  information
-ifup(){
-	local ip hostname router subnet iface HOSTNAME NETMASK BROADCAST
-
-	iface="$1"
-	ip="$(config ip)"
-	hostname="$(config host)"
-	router="$(config gateway)"
-	broadcast=
-
-	if test -n "$ip"
-	then
-		# only if an ip was specified
-		subnet="$(config netmask)"
-	else
-		ip=192.168.1.77
-	fi
-
-	# First try udhcpc - note that the /boot/udhcpc.script
-	# simply records the values returned and the udhcpc
-	# is not left running so this will only work for
-	# the lease length time!
-	ifconfig "$iface" up
-	if test "$(config boot)" != static
-	then
-		test -n "$hostname" && HOSTNAME="-H $hostname"
-		# The script writes the required shell variable assignments
-		# to file descriptor 9
-		eval $(udhcpc -i "$iface" -n -q -r "$ip" $HOSTNAME -s /boot/udhcpc.script 9>&1 >/dev/null)
-	fi
-
-	test -n "$broadcast" && BROADCAST="broadcast $broadcast"
-	test -n "$subnet" && NETMASK="netmask $subnet"
-
-	if ifconfig "$iface" "$ip" $NETMASK $BROADCAST
-	then
-		for route in $router
-		do
-			route add default gw "$route" dev "$iface"
-		done
-		return 0
-	else
-		ifconfig "$iface" down
-		return 1
-	fi
-}
-#
-# ifdown "interface"
-#  take the interface down
-ifdown(){
-	ifconfig "$1" down
-}
-#
-# mountflash "flash device" "flash root directory" {mount options}
-#  Finds and mounts the flash file system on the given directory
-mountflash(){
-	local ffsdev ffsdir
-
-	ffsdev="$1"
-	test -n "$ffsdev" -a -b "$ffsdev" || {
-		echo "$0: unable to find flash file system to copy ($ffsdev)" >&2
-		return 1
-	}
-	shift
-
-	ffsdir="$1"
-	test -n "$ffsdir" -a -d "$ffsdir" || {
-		echo "$0: mountflash $ffsdir: not a directory (internal error)" >&2
-		return 1
-	}
-	shift
-
-	mount -t jffs2 "$@" "$ffsdev" "$ffsdir" || {
-		echo "$0: $ffsdev: unable to mount flash file system on $ffsdir" >&2
-		return 1
-	}
-	return 0
-}
-#
-# umountflash [-r] "flash device"
-#  unmount any instance of the given flash device, if -r is specified a mount on
-#  root is an error, otherwise a mount on root is ignored (and remains).
-umountflash(){
-	local rootok ffsno ffsdev
-	rootok=1
-	case "$1" in
-	-r)	rootok=
-		shift;;
-	esac
-	#
-	# The argument is ffsdev
-	ffsdev="$1"
-	ffsno="$(devio "<<$ffsdev" prd)"
-	test -n "$ffsno" -a "$ffsno" -ge 0 || {
-		echo "$0: $ffsdev: device number $ffsno is not valid, cannot continue." >&2
-		return 1
-	}
-	#
-	# Make sure that Flashdisk isn't mounted on /
-	if test -z "$rootok" -a "$(devio "<</etc/init.d/sysconfsetup" prd)" -eq "$ffsno"
-	then
-		echo "$0: $ffsdev is mounted on /, use turnup ram" >&2
-		return 1
-	fi
-	#
-	# The function is currently always used interactively, so output 
-	echo "$0: umounting any existing mount of $ffsdev" >&2
-	#
-	# check each mount point, do this last first because otherwise nested
-	# mounts of ffsdev cannot be umounted.
-	ffs_umount() {
-		local device mp type options stuff
-
-		read device mp type options stuff
-		test -z "$device" && return 0
-
-		# handle following entries first
-		ffs_umount || return 1
-
-		# handle this entry, since this is currently only used for unmounting
-		# the flash root partition we know a file which must exist...
-		case "$mp/$type" in
-		//jffs2);; # skip /
-		*/jffs2)test "$(devio "<<$mp/etc/init.d/sysconfsetup" prd 2>/dev/null)" -ne "$ffsno" ||
-			umount "$mp" || {
-				echo "$0: $mp: unable to umount $ffsdev" >&2
-				return 1
-			};;
-		esac
-
-		return 0
-	}
-	#
-	ffs_umount </proc/mounts || {
-		echo "$0: umount $ffsdev from all mount points then re-run $0" >&2
-		return 1
-	}
-
-	return 0
-}
-
-#
-# uuid_by_partition
-#  output a list of partitions and their UUIDs
-uuid_by_partition() {
-	blkid -c /dev/null -s UUID | sed -n 's/^\([^:]*\): .*UUID="\([^"]*\)".*$/\1 \2/p'
-}
-
-#
-# partition_of uuid
-#  return the partition corresponding to the UUID
-partition_of() {
-	sed -n 's/^\([^ ]*\) '"$1"'$/\1/p'
-}
diff --git a/recipes/foonas-init/files/links.conf b/recipes/foonas-init/files/links.conf
deleted file mode 100644
index fdd1f3c..0000000
--- a/recipes/foonas-init/files/links.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file does not exist. Please do not ask the debian maintainer about it.
-# You may use it to do strange and wonderful things, at your risk.
-
-# The new RTC class does not create the /dev/rtc symlink, and udev rules don't get run for built-in modules.
-# So it looks like we have to do this here for the moment, until someone comes up with a better idea ...
-L rtc		rtc0
diff --git a/recipes/foonas-init/files/modulefunctions b/recipes/foonas-init/files/modulefunctions
deleted file mode 100644
index 430e376..0000000
--- a/recipes/foonas-init/files/modulefunctions
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-# "." this file, then call the appropriate routines to load modules
-# you might need.  This is run from /etc/rcS.d/S21loadmodules.sh
-# at boot time.  Possible examples are commented out, none of which
-# are needed on openprotium since they are already in the kernel.
-
-. /etc/default/functions
-
-
-loaddiskmods(){
-	:
-#	modprobe scsi_mod
-#	modprobe sd_mod 
-#	modprobe usbcore 
-#	case "$(machine)" in
-#	    nslu2)                     
-#	        modprobe ehci-hcd
-#	        modprobe ohci-hcd
-#		;;
-#	esac
-#	modprobe usb-storage
-}
-
-loadnetmods(){
-	:
-#	modprobe af_packet
-#	case "$(machine)" in
-#	    ixdp425|nslu2|nas100d)
-#	        modprobe ixp4xx_mac
-#	        ;;                     
-#	esac
-}
-
-loadmiscmods(){
-	:
-#	modprobe ixp4xx_rng
-#	modprobe i2c_dev
-}
-
diff --git a/recipes/foonas-init/files/reflash b/recipes/foonas-init/files/reflash
deleted file mode 100644
index f294782..0000000
--- a/recipes/foonas-init/files/reflash
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/sh
-#
-# Open Protium Reflash. This script will take a firmware image consisting
-# of a compressed linux kernel image, concatentated with a jffs2 root 
-# filesystem image. The kernel MTD device is discovered by locating
-# the MTD partition with the tag "kernel" and the filesystem MTD device
-# is dicovered by locating the MTD partition with the tag "filesystem."
-# There is no TOC inside the firmware images so there is no direct way 
-# to validate that the sizes of the parts in the firmware match the 
-# existing MTD partitions. So there could be a mismatch. However, a
-# a mismatch size will be detect as this script mounts the newly laid
-# done filesystem, a mismatch guarantees this to fail. That being said
-# the script does validate the total size to prevent overwriting 
-# uboot. Furthermore the script makes sure the fsdev is not in use and
-# that the various images are block aligned.
-
-flimg=$1
-if [ -z "$flimg" ]; then
-	echo "Usage: reflash <image file>"
-	exit 1
-fi
-
-if [ \! -f $flimg -o \! -r $flimg ]; then
-	#
-	# not a file or not readable
-	#
-	echo "error: Image file [$flimg] not available"
-	exit 1
-fi
-
-dmesg | grep StorCenter >/dev/null 2>&1
-if [ $? -ne 0 ]; then
-	exit 0
-fi
-
-blksize=512
-mtd=/proc/mtd
-mtab=/proc/mounts
-mntdir=/tmp/fs.$$
-
-ktag=kernel
-fstag=filesystem
-
-kdev=` grep  $ktag $mtd | awk -F: '{print $1}' | sed -e 's?mtd?/dev/mtdblock/?g'`
-fsdev=`grep $fstag $mtd | awk -F: '{print $1}' | sed -e 's?mtd?/dev/mtdblock/?g'`
-
-flsize=`ls -l $flimg     | awk '{print $5}'`
-ksize=`grep   $ktag $mtd | awk '{print "0x" $2}'`
-fssize=`grep $fstag $mtd | awk '{print "0x" $2}'`
-
-#
-# Size comes out of dc in exp notation and test wont accept a hex number
-# so dumo it in hex then use awk to convert to decimal
-#
-size=0x`dc 16  o $ksize $fssize + p`
-size=`echo $size | awk '{printf ("%d",$1)}'`
-
-#
-# Make sure we are block aligned
-#
-kblks=`dc $ksize $blksize / p`
-r=`dc $ksize $blksize % p`
-if [ $r -ne 0 ]; then 
-	echo "error: Kernel partition is not block aligned."
-	exit 1
-fi
-
-#
-# Make sure we are block aligned
-#
-fsblks=`dc $fssize $blksize / p`
-r=`dc $fssize $blksize % p`
-if [ $r -ne 0 ]; then 
-	echo "error: Filesystem partition is not block aligned."
-	exit 1
-fi
-
-#
-# Check to see that we have enough room
-#
-if [ $flsize -gt $size ]; then
-	echo "error: Image size is bigger then available space."
-	exit 1
-fi
-
-#
-# Is fsdev mounted?
-#
-grep $fsdev $mtab > /dev/null 2>&1
-if [ $? -eq 0 ]; then
-	echo "error: $fsdev mounted"
-	exit 1
-fi
-
-#
-# If root is a jffs2 then close enough, im out
-#
-grep jffs2 $mtab > /dev/null 2>&1
-if [ $? -eq 0 ]; then
-	echo "error: $fsdev may be mounted"
-	exit 1
-fi
-
-
-#
-# Mount fsdev and save fsdev/linuxrc
-#
-mkdir $mntdir /tmp/$$
-mount -t jffs2 $fsdev $mntdir
-if [ $? -ne 0 ]; then
-	echo "error: Unable to mount $fsdev"
-	exit 1
-fi
-echo "Preserving /linuxrc in /tmp/$$"
-cp $mntdir/linuxrc* /tmp/$$
-umount $mntdir
-
-echo "Image:"
-echo "	Name  : $flimg"
-echo "	Length: $flsize"
-echo
-echo "Kernel:"
-echo "	Device: $kdev"
-echo "	Length: $ksize"
-echo "	Blocks: $kblks"
-echo 
-echo "Filesystem:"
-echo "	Device: $fsdev"
-echo "	Length: $fssize"
-echo "	Blocks: $fsblks"
-echo
-echo 'Ready to flash, Continue? (yes/no)'
-read continue
-if [ "z$continue" != "zyes" ]; then
-	rm -rf $mntdir /tmp/$$
-	exit 0
-fi
-
-#
-# Lets do the flash
-#
-echo Preserving existing flash in: $flimg.sav.$$ 
-dd of=$flimg.sav.$$ if=$kdev  bs=$blksize count=$kblks
-dd of=$flimg.sav.$$ if=$fsdev bs=$blksize count=$fsblks seek=$kblks
-
-echo Flashing new firmware....
-dd if=$flimg of=$kdev  bs=$blksize count=$kblks
-dd if=$flimg of=$fsdev bs=$blksize count=$fsblks skip=$kblks
-sync
-sleep 5 
-
-#
-# Mount fsdev and restore fsdev/linuxrc
-#
-mount -t jffs2 $fsdev $mntdir
-if [ $? -ne 0 ]; then
-	echo "error: Unable to re-mount $fsdev"
-	exit 1
-fi
-echo "Restoring /linuxrc"
-cp /tmp/$$/linuxrc* $mntdir
-umount $mntdir
-rm -rf $mntdir /tmp/$$
diff --git a/recipes/foonas-init/files/sysconf b/recipes/foonas-init/files/sysconf
deleted file mode 100644
index 8866c07..0000000
--- a/recipes/foonas-init/files/sysconf
+++ /dev/null
@@ -1,793 +0,0 @@
-#!/bin/sh
-# sysconf
-#
-# utility to manipulate system configuration information help
-# in a RedBoot SysConf partition
-#
-# load the utility functions (unless this is being called just
-# to load these functions!)
-test "$1" != sysconf && . /etc/default/functions
-
-# NSLU2 flash layout is non-standard.
-case "$(machine)" in
-nslu2)
-	kpart="Kernel"
-	syspart="SysConf"
-	ffspart="Flashdisk";;
-*)
-	kpart="kernel"
-	syspart="sysconfig"
-	ffspart="filesystem";;
-esac
-#
-# sysconf_valid
-#  return true if the SysConf partition exists and seems to be
-#  potentially valid (it starts with a reasonable length).
-sysconf_valid(){
-	local sysdev
-	sysdev="$(mtblockdev $syspart)"
-	test -n "$sysdev" -a -b "$sysdev" &&
-		devio "<<$sysdev" '!! b.10>s32768<&!'
-}
-
-#
-# sysconf_read [prefix]
-#  read the $syspart partition (if present) writing the result into
-#  /etc/default/sysconf, if the result is empty it will be removed.
-sysconf_read(){
-	local sysdev sedcmd mac config_root
-	config_root="$1"
-	rm -f /tmp/sysconf.new
-	sysdev="$(mtblockdev $syspart)"
-	if sysconf_valid
-	then
-		# Read the defined part of $syspart into /etc/default/sysconf.
-		# $syspart has lines of two forms:
-		#
-		#  [section]
-		#  name=value
-		#
-		# In practice $syspart also contains other stuff, use the command:
-		#
-		#  devio '<</dev/mtd1;cpb'
-		#
-		# to examine the current settings.  The badly formatted stuff
-		# is removed (to be exact, the sed script selects only lines
-		# which match one of the two above).  The lan interface, which
-		# on NSLU2 defaults to ixp0, is changed to the correct value for
-		# slugos, eth0.  The bootproto, which LinkSys sets to static in
-		# manufacturing, is reset to dhcp if the IP is still the
-		# original (192.168.1.77)
-		sedcmd='/^\[[^][]*\]$/p;'
-		# only do the ip_addr and lan_interface fixups on NSLU2
-		if test "$(machine)" = nslu2
-		then
-			sedcmd="$sedcmd"'
-				s/^lan_interface=ixp0$/lan_interface=eth0/;
-				/^ip_addr=192\.168\.1\.77$/,/^bootproto/s/^bootproto=static$/bootproto=dhcp/;'
-		fi
-		# always fix up the hardware addr if it is present
-		mac="$(config mac)"
-		if test -n "$mac"
-		then
-			sedcmd="$sedcmd"'
-				s/^hw_addr=.*$/hw_addr='"$mac"'/;'
-		fi
-		# and only print lines of the correct form
-		sedcmd="$sedcmd"'
-			/^[-a-zA-Z0-9_][-a-zA-Z0-9_]*=/p'
-
-		devio "<<$sysdev" cpb fb1,10 | sed -n "$sedcmd" >/tmp/sysconf.new
-	fi
-	#
-	# test the result - sysconf must be non-empty
-	if test -s /tmp/sysconf.new
-	then
-		mv /tmp/sysconf.new "$config_root/etc/default/sysconf"
-	else
-		rm -f /tmp/sysconf.new
-		return 1
-	fi
-}
-
-#
-# sysconf_default [prefix]
-#  Provde a default /etc/default/sysconf when there is no $syspart partition,
-#  or when it is invalid, this function will read from an existing sysconf,
-#  copying the values into the new one.
-# sysconf_line tag config-tag
-#  write an appropriate line if the config value is non-empty
-sysconf_line(){
-	config "$2" | {
-		local value
-		read value
-		test -n "$value" && echo "$1"="$value"
-	}
-}
-#
-sysconf_default(){
-	local config_root
-	config_root="$1"
-	{	echo '[network]'
-		sysconf_line hw_addr mac
-		sysconf_line disk_server_name host
-		sysconf_line w_d_name domain
-		sysconf_line lan_interface iface
-		sysconf_line ip_addr ip
-		sysconf_line netmask netmask
-		sysconf_line gateway gateway
-		sysconf_line dns_server1 dns
-		sysconf_line dns_server2 dns2
-		sysconf_line dns_server3 dns3
-		sysconf_line bootproto boot
-	} >/tmp/sysconf.new
-	mv /tmp/sysconf.new "$config_root/etc/default/sysconf"
-}
-
-#
-# sysconf_reload [prefix]
-#  read the values from /etc/default/sysconf and use these values to set
-#  up the following system files:
-#
-#   /etc/hostname
-#   /etc/defaultdomain
-#   /etc/resolv.conf
-#   /etc/network/interfaces
-#   /etc/motd
-#
-sysconf_reload(){
-	local config_root host domain iface boot ip netmask gateway ifname iftype
-	config_root="$1"
-	host="$(config host)"
-	test -n "$host" && echo "$host" >"$config_root/etc/hostname"
-	domain="$(config domain)"
-	test -n "$domain" && echo "$domain" >"$config_root/etc/defaultdomain"
-	#
-	# The DNS server information gives up to three nameservers,
-	# but this currently only binds in the first.
-	{
-		test -n "$domain" && echo "search $domain"
-		test -n "$(config dns)" && echo "nameserver $(config dns)"
-		test -n "$(config dns2)" && echo "nameserver $(config dns2)"
-		test -n "$(config dns3)" && echo "nameserver $(config dns3)"
-	} >"$config_root/etc/resolv.conf"
-	#
-	# Ethernet information.  This goes into /etc/network/interfaces,
-	# however this is only used for static setup (and this is not
-	# the default).  With dhcp the slugos udhcp script,
-	# /etc/udhcpc.d/50default, loads the values from sysconf.
-	iface="$(config iface)"
-	boot="$(config boot)"
-	# Only dhcp and static are supported at present - bootp
-	# support requires installation of appropriate packages
-	# dhcp is the fail-safe
-	case "$boot" in
-	dhcp|static) ;;
-	*) boot=dhcp;;
-	esac
-	#
-	ip="$(config ip)"
-	netmask="$(config netmask)"
-	gateway="$(config gateway)"
-	{
-		echo "# /etc/network/interfaces"
-		echo "# configuration file for ifup(8), ifdown(8)"
-		echo "#"
-		echo "# The loopback interface"
-		echo "auto lo"
-		echo "iface lo inet loopback"
-		echo "#"
-		echo "# The interface used by default during boot"
-		echo "auto $iface"
-		echo "# Automatically generated from /etc/default/sysconf"
-		echo "# address, netmask and gateway are ignored for 'dhcp'"
-		echo "# but required for 'static'"
-		echo "iface $iface inet $boot"
-		# The following are ignored for DHCP but are harmless
-		test -n "$ip"      && echo "	address $ip"
-		test -n "$netmask" && echo "	netmask $netmask"
-		test -n "$gateway" && echo "	gateway $gateway"
-		#
-		# Now read all the other ARPHRD_ETHER (type=1) interfaces
-		# and add an entry for each.
-		for ifname in $(test -d /sys/class/net && ls /sys/class/net)
-		do
-			if test -r "/sys/class/net/$ifname/type" -a "$ifname" != "$iface"
-			then
-				read iftype <"/sys/class/net/$ifname/type"
-				case "$iftype" in
-				1)	echo "#"
-					echo "# /sys/class/net/$ifname:"
-					echo "auto $ifname"
-					echo "iface $ifname inet dhcp";;
-				esac
-			fi
-		done
-	} >"$config_root/etc/network/interfaces"
-	#
-	# Finally rewrite /etc/motd
-	{	echo "Host name:           $host"
-		echo "Domain name:         $domain"
-		echo "Host MAC:            $(config mac)"
-		echo "Network boot method: $boot"
-		case "$boot" in
-		static) echo "Host IP address:     $ip";;
-		esac
-		echo "Use 'turnup init' to reset the configuration"
-		echo "Use 'turnup preserve' to save the configuration permanently"
-		echo "Use 'turnup restore' to restore a previously saved configuration"
-		echo "Use 'turnup disk|nfs -i <device> options to initialise a non-flash root"
-		echo "Use 'turnup help' for more information"
-	} >"$config_root/etc/motd"
-}
-
-#
-# sysconf_save_conffiles <flash-directory> <dest> <list>
-#  preserve the configuration files in a directory or in a CPIO archive
-#  (which is *not* compressed).  If <dest> is a directory the files are
-#  copied, otherwise a CPIO archive is made with that name.  <list> is
-#  the listing file giving the preserved files and the processing option.
-sysconf_save_conffiles(){
-	local ffsdir dest list file
-	ffsdir="$1"
-	saved="$2"
-	list="$3"
-	test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -n "$saved" -a -n "$list" || {
-		echo "sysconf_save_conffiles: invalid arguments: '$*'" >&2
-		echo " usage sysconf_save_conffiles <flash-directory> <dest> <list>" >&2
-		return 1
-	}
-	#
-	(	cd "$ffsdir"
-		find etc/*.conf $(sed 's!^/!!' usr/lib/ipkg/info/*.conffiles) ! -type d -newer etc/.configured -print |
-			sed 's/^/diff /'
-		exec sed 's/#.*$//;/^[ 	]*$/d' etc/default/conffiles
-	) | sed 's!^/*!!' |
-	awk '{ op=$1; $1=""; file[$0]=op }
-		END{ for (f in file) if (file[f] != "ignore") print file[f] f }' |
-	while read op file
-	do
-		if test -e "$ffsdir/$file"
-		then
-			echo "$op $file" >&3
-			echo "$file"
-		fi
-	done 3>"$list" | (
-		cd "$ffsdir"
-		if test -d "$saved"
-		then
-			exec cpio -p -d -m -u "$saved"
-		else
-			exec cpio -o -H crc >"$saved"
-		fi
-	)
-}
-
-#
-# sysconf_verify file
-#  this is called with the name of a 'diff' file which is, indeed,
-#  different and with all the std streams connected to the tty.  It
-#  returns a status code to say whether (0) or not (1) to copy the
-#  file over.
-#
-# globals: the following must be defined in the calling context!
-#  saved:  the directory containing the unpacked saved files
-#  ffsdir: the flash directory to which the files are being restored (/)
-#
-sysconf_verify_help() {
-	echo "Please specify how to handle this file or link, the options are as follows,"
-	echo "two character abbreviations may be used:"
-	echo
-	echo " keep:    retain the old file, overwrite the new flash image file"
-	echo " upgrade: retain the new file, the old (saved) file is not used"
-	echo " diff:    display the differences between the old and the new using diff -u"
-	echo " shell:   temporarily start an interactive shell (sh -i), exit to continue"
-	echo " skip:    ignore this file for the moment.  The file is left in the directory"
-	echo "          $saved and many be handled after this script has completed"
-}
-#
-sysconf_verify() {
-	local command file
-
-	# return 1 here causes the file not to be overwritten,
-	# control should never get here!
-	test -n "$sysconf_noninteractive" && {
-		echo "$0: $*: changed file cannot be handled non-interactively" >&2
-		return 1
-	}
-
-	file="$1"
-	echo "$0: $file: configuration file changed."
-	sysconf_verify_help "$file"
-	while :
-	do
-		echo -n "option: "
-		read command
-		case "$command" in
-		ke*)	return 0;;
-		up*)	rm "$saved/$file"
-			return 1;;
-		di*)	echo "DIFF OLD($saved) NEW($ffsdir)"
-			diff -u "$saved/$file" "$ffsdir/$file";;
-		sh*)	PS1="$file: " sh -i;;
-		sk*)	return 1;;
-		*)	sysconf_verify_help "$file";;
-		esac
-	done
-}
-# the same, but for a link
-sysconf_verify_link() {
-	local command link
-
-	# return 1 here causes the file not to be overwritten,
-	# control should never get here!
-	test -n "$sysconf_noninteractive" && {
-		echo "$0: $*: changed link cannot be handled non-interactively" >&2
-		return 1
-	}
-
-	link="$1"
-	echo "reflash: $link: configuration link changed."
-	sysconf_verify_help "$link"
-	while :
-	do
-		echo -n "option: "
-		read command
-		case "$command" in
-		ke*)	return 0;;
-		up*)	rm "$saved/$link"
-			return 1;;
-		di*)	echo "DIFF:"
-			echo "OLD($saved): $link -> $(readlink "$saved/$link")"
-			echo "NEW($ffsdir): $link -> $(readlink "$ffsdir/$link")";;
-		sh*)	PS1="$link: " sh -i;;
-		sk*)	return 1;;
-		*)	sysconf_verify_help "$link";;
-		esac
-	done
-}
-
-#
-# sysconf_restore_conffiles <flash-directory> <source-dir> <restore>
-#  restore the configuration files from a directory.  'source-dir'
-#  If <source> is a directory of files from sysconf_save_conffiles.  The
-#  list of files restored is written to the third argument (restore),
-#  but is not required (/dev/null would be ok).
-#
-#  the list of files to restore is read from stdin, along with the
-#  processing option for each file (the format is as produced by
-#  sysconf_save_conffiles in the 'list' output).
-sysconf_restore_conffiles(){
-	local ffsdir saved restore
-	# these are the globals used by the above function
-	ffsdir="$1"
-	saved="$2"
-	restore="$3"
-	test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -d "$saved" -a -n "$restore" || {
-		echo "restore_conffiles: invalid arguments: '$*'" >&2
-		echo " usage sysconf_restore_conffiles <flash-directory> <source-dir> <list>" >&2
-		return 1
-	}
-	#
-	# read the list and process each given file
-	while read op file
-	do
-		# handle .configured specially (to preserve the original datestamp)
-		if test "$file" = "etc/.configured"
-		then
-			# this should definately not fail because of the test above!
-			if cp -a "$saved/$file" "$ffsdir/$file"
-			then
-				echo "$file" >&3
-			else
-				echo "sysconf_restore_conffiles: $file: timestamp copy failed (ignored)" >&2
-			fi
-		elif test -h "$saved/file" -o -h "$ffsdir/$file"
-		then
-			# new or old symbolic link
-			if test -h "$saved/$file" -a -h "$ffsdir/$file" &&
-				test "$(readlink "$saved/$file")" = "$(readlink "$ffsdir/$file")"
-			then
-				# no change
-				echo "$file" >&3
-			else
-				# assume a change regardless
-				case "$op" in
-				preserve)
-					echo "$file"
-					echo "$file" >&3;;
-				diff)	# need user input
-					if sysconf_verify_link "$file" <>/dev/tty >&0 2>&0
-					then
-						echo "$file"
-						echo "$file" >&3
-					fi;;
-				esac
-			fi
-		else
-			# only overwrite if necessary
-			if test -e "$ffsdir/$file" && cmp -s "$saved/$file" "$ffsdir/$file"
-			then
-				# do not overwrite
-				echo "$file" >&3
-			elif test ! -e "$ffsdir/$file"
-			then
-				# always preserve
-				echo "$file"
-				echo "$file" >&3
-			else
-				case "$op" in
-				preserve)
-					echo "$file"
-					echo "$file" >&3;;
-				diff)	# the files are different, get user input
-					if sysconf_verify "$file" <>/dev/tty >&0 2>&0
-					then
-						echo "$file"
-						echo "$file" >&3
-					fi;;
-				esac
-			fi
-		fi
-	done 3>"$restore" | (cd "$saved"; exec cpio -p -d -u "$ffsdir")
-}
-
-#
-# sysconf_test_restore <flash-directory> <source-dir>
-#  return true only if the restore does not need to do an interactive
-#  compare
-sysconf_test_restore(){
-	local ffsdir saved
-	# these are the globals used by the above function
-	ffsdir="$1"
-	saved="$2"
-	# this is an error case, but return 0 so that the error is
-	# detected later
-	test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -d "$saved" ||
-		return 0
-	#
-	# read the list and check each diff file (this is just a copy of the
-	# logic above with all the work removed!)
-	while read op file
-	do
-		# handle .configured specially (to preserve the original datestamp)
-		if test "$op" != diff
-		then
-			: # no diff required
-		elif test "$file" = "etc/.configured"
-		then
-			: # special handling
-		elif test -h "$saved/file" -o -h "$ffsdir/$file"
-		then
-			# new or old symbolic link
-			if test -h "$saved/$file" -a -h "$ffsdir/$file" &&
-				test "$(readlink "$saved/$file")" = "$(readlink "$ffsdir/$file")"
-			then
-				: # no change
-			else
-				# assume a change regardless
-				return 1
-			fi
-		else
-			# only overwrite if necessary
-			if test -e "$ffsdir/$file" && cmp -s "$saved/$file" "$ffsdir/$file"
-			then
-				: # do not overwrite
-			elif test ! -e "$ffsdir/$file"
-			then
-				: # always preserve
-			else
-				# a change
-				return 1
-			fi
-		fi
-	done
-
-	return 0
-}
-
-#
-# sysconf_save
-#  save the system configuration to $syspart - $syspart must exist and
-#  there must be a writeable device for it.
-sysconf_save(){
-	local sysdev ffsdev ffsdir saved list size status
-	ffsdev="$(mtblockdev $ffspart)"
-	sysdev="$(mtblockdev $syspart)"
-	status=1
-	if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev"
-	then
-		# this will succeed silently if the flash device is on /
-		umountflash "$ffsdev" || exit 1
-		#
-		# Everything is umounted, now remount on a temporary directory.
-		ffsdir="/tmp/flashdisk.$$"
-		mkdir "$ffsdir" || {
-			echo "$0: $ffsdir: failed to create temporary directory" >&2
-			exit 1
-		}
-		#
-		mountflash "$ffsdev" "$ffsdir" -o ro || {
-			rmdir "$ffsdir"
-			exit 1
-		}
-		# need temporary files for the cpio output and the listing
-		saved=/tmp/cpio.$$
-		list=/tmp/preserve.$$
-		rm -rf "$saved" "$list"
-		sysconf_save_conffiles "$ffsdir" "$saved" "$list" || {
-			echo "$0: $saved: archive of saved configuration files failed" >&2
-			rm -rf "$saved"
-			rm "$list"
-			umount "$ffsdir" && rmdir "$ffsdir" ||
-				echo "$0: $ffsdir: temporary directory cleanup failed" >&2
-			return 1
-		}
-		# ignore the error in this case:
-		umount "$ffsdir" && rmdir "$ffsdir" ||
-			echo "$0: $ffsdir: temporary directory cleanup failed" >&2
-		#
-		# we now have:
-		#  /etc/default/sysconf	the basic config
-		#  /tmp/preserve.$$	the list of saved files
-		#  /tmp/cpio.$$		the CPIO archive of those files
-		#
-		# make one big file with the sysconf data followed by the
-		# compressed archive in /tmp/sysconf.$$
-		{	{	cat /etc/default/sysconf
-				echo '[preserve]'
-			} | sed -n '1,/^\[preserve\]^/p'
-			while read op file
-			do
-				echo "$op"="$file"
-			done <"$list"
-		} >/tmp/sysconf.$$
-		size="$(devio "<</tmp/sysconf.$$" 'pr$')"
-		gzip -9 <"$saved" >>/tmp/sysconf.$$
-		#
-		# more cleanup, then try to write the new sysconf to $syspart
-		# the format is a 4 byte big-endian length then the text data
-		# if the data won't fit exit with error code 7
-		rm "$saved" "$list"
-		devio -p "<</tmp/sysconf.$$" ">>$sysdev" '
-			$( $4+ # >
-			!! 7
-			$) 0
-			wb '"$size"',4
-			cp $'
-		case $? in
-		0)	echo " done" >&2
-			status=0;;
-		1)	echo " failed" >&2
-			echo " $syspart could not be written (no changes made)" >&2;;
-		3)	echo " failed" >&2
-			echo " $syspart partially written, you may want to reset it" >&2;;
-		7)	echo " failed" >&2
-			echo " $syspart is too small: $size bytes required" >&2
-			echo " No change made" >&2;;
-		*)	echo " failed" >&2
-			echo " Internal error writing $syspart" >&2;;
-		esac
-		#
-		rm -f /tmp/sysconf.$$
-	else
-		echo "sysconf save: $syspart or $ffspart partition not found" >&2
-		echo " A RedBoot partition named '$syspart' must exist in the system" >&2
-		echo " flash memory for this command to work, and there must be a" >&2
-		echo " block device to access this partition (udev will normally" >&2
-		echo " create this automatically.  The flash partition contents must" >&2
-		echo " also be accessible in a partition called '$ffspart'" >&2
-		echo
-		echo " To create the $syspart partition use the 'fis create' command" >&2
-		echo " in the RedBoot boot loader, it is sufficient to make the" >&2
-		echo " partition one erase block in size unless you have substantially" >&2
-		echo " increased the size of the files listed in /etc/default/conffiles" >&2
-	fi
-
-	return $status
-}
-
-#
-# sysconf_restore [auto]
-#  restore previously saved configuration information from $syspart
-sysconf_restore_error(){
-	local root
-	root="$1"
-	shift
-	#       -------------------------------------------------------------------------------
-	{	echo "          WARNING: saved configuration files not restored"
-		test -n "$1" && echo "$*"
-		echo
-		echo "The configuration of this machine has been reinitialised using the values"
-		echo "from /etc/default/sysconf, however configuration files saved in the $syspart"
-		echo "partition have not been restored."
-		echo
-		echo "You can restore these files by correcting any reported errors then running"
-		echo
-		echo "  sysconf restore"
-		echo
-		echo "from the command line.  This will completely reinitialise the configuration"
-		echo "using the information in the $syspart partition."
-	} >"$root/etc/motd"
-	cat "$root/etc/motd" >&2
-}
-#
-sysconf_restore(){
-	local sysdev ffsdev ffsdir saved restore size status sysconf_noninteractive config_root
-
-	# if set this means 'do no diff' - this avoids the code above which
-	# would open /dev/tty and therefore allows this stuff to be done from
-	# an init script
-	sysconf_noninteractive=
-	test "$1" = auto && sysconf_noninteractive=1
-
-	ffsdev="$(mtblockdev $ffspart)"
-	sysdev="$(mtblockdev $syspart)"
-	status=1
-	if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev" &&
-		sysconf_valid
-	then
-		# this will succeed silently if the flash device is on /
-		umountflash "$ffsdev" || exit 1
-		#
-		# Everything is umounted, now remount on a temporary directory.
-		ffsdir="/tmp/flashdisk.$$"
-		config_root="$ffsdir"
-		mkdir "$ffsdir" || {
-			echo "$0: $ffsdir: failed to create temporary directory" >&2
-			exit 1
-		}
-		#
-		mountflash "$ffsdev" "$ffsdir" || {
-			rmdir "$ffsdir"
-			exit 1
-		}
-		#
-		# first restore the $syspart section
-		sysconf_read "$ffsdir" || sysconf_default "$ffsdir"
-		#
-		# now use this to regenerate the system files
-		sysconf_reload "$ffsdir"
-		#
-		# now examine the [preserve] section, if it is there restore
-		# it if possible.
-		if test -n "$(syssection preserve)"
-		then
-			# 'saved' is a directory, 'restore' is a file (which is
-			# used to detect unrestored files).  The directory needs
-			# to be populated with files.
-			saved=/tmp/cpio.$$
-			restore=/tmp/restore.$$
-			rm -rf "$saved" "$restore"
-			#
-			mkdir "$saved" || {
-				sysconf_restore_error "$ffsdir" "$saved: failed to create temporary directory"
-				return 1
-			}
-			#
-			# the CPIO archive is gzip compressed after the text part
-			# of sysconf, gzip will handle the LZ stream termination
-			# correctly (and break the pipe) so we don't need to know
-			# the real length of the data
-			devio "<<$sysdev" '<=b4+.' 'cp $s-' | gunzip | (
-				cd "$saved"
-				exec cpio -i -d -m -u
-			) || {
-				rm -rf "$saved"
-				sysconf_restore_error "$ffsdir" "$saved: cpio -i failed"
-				return 1
-			}
-			# either there must be no 'diff' files or it must
-			# be possible to interact with a real user.
-			if test -z "$sysconf_noninteractive" ||
-				syssection preserve | sysconf_test_restore "$ffsdir" "$saved"
-			then
-				#
-				# remove the 'init' motd from sysconf_reload
-				rm "$ffsdir/etc/motd"
-				#
-				# now restore from the directory, using the information in
-				# the preserve section, if this fails in a non-interactive
-				# setting the system might not reboot
-				syssection preserve |
-					sysconf_restore_conffiles "$ffsdir" "$saved" "$restore" || {
-					# there is a chance of the user cleaning this up
-#------------------------------------------------------------------------------
-					sysconf_restore_error "$ffsdir" \
-"$0: $saved: restore of saved configuration files failed.
-  The flash file system is mounted on $ffsdir.
-  The saved files are in $saved and the list of files selected for
-  restore is in $restore.
-  You should restore any required configuration from $saved, then umount
-  $ffsdir and reboot."
-  						# this prevents cleanup/umount
-						return 1
-				}
-				#
-				# remove the copied files (i.e. the ones which were preserved)
-				(	cd "$saved"
-					exec rm $(cat "$restore")
-				)
-				rm "$restore"
-				#
-				# clean up, files left in $saved need to be handled by the user
-				files="$(find "$saved" ! -type d -print)"
-				if test -n "$files"
-				then
-#------------------------------------------------------------------------------
-					sysconf_restore_error "$ffsdir" \
-"$0: some saved configuration files have not been handled:
-
-$files
-
-These files can be examined in $saved and restored to
-$ffsdir if required.  The saved files are in a temporary
-directory and will not be retained across a reboot - copy then elsewhere if
-you are unsure whether they are needed."
-					return 1
-				fi
-				#
-				# so this is safe now (no files, links etc)
-				rm -rf "$saved"
-			else
-				rm -rf "$saved"
-				# non-interactive and some changed diff files
-				sysconf_restore_error "$ffsdir" \
-"$0: some of the saved configuration files must be
-examined before restoration"
-				# but continue to the umount
-			fi
-		fi
-		#
-		# ignore the error in this case:
-		umount "$ffsdir" && rmdir "$ffsdir" ||
-			echo "$0: $ffsdir: temporary directory cleanup failed" >&2
-		status=0
-	else
-		echo "sysconf restore: $syspart or $ffspart partition not found" >&2
-		echo " You must have used 'sysconf save' to save configuration data" >&2
-		echo " into the $syspart partition before using this command.  The command" >&2
-		echo " will restore the configuration data to the flash root partition" >&2
-		echo " named '$ffspart' - this must also be accessible." >&2
-	fi
-
-	return $status
-}
-
-#
-# sysconf_help
-#  help text
-sysconf_help(){
-	#     -------------------------------------------------------------------------------
-	echo "sysconf: usage: sysconf read|default|reload|save|restore" >&2
-	echo " read:    the current $syspart partition is read into /etc/default/sysconf" >&2
-	echo " default: a default /etc/default/sysconf is created" >&2
-	echo " reload:  system configuration files are recreated from /etc/default/sysconf" >&2
-	echo " save:    /etc/default/sysconf and the files listed in /etc/default/conffiles" >&2
-	echo "          are written to the $syspart partition" >&2
-	echo " restore: the configuration information in the $syspart partition saved by" >&2
-	echo "          'sysconf save' is restored" >&2
-}
-
-#
-# the real commands
-#if [ "$(machine)" = "storcenter" ]; then
-#	echo "sysconf not (yet) supported on storcenter"
-#	exit 0
-#fi
-sysconf_command="$1"
-test $# -gt 0 && shift
-case "$sysconf_command" in
-read)	sysconf_read "$@";;
-default)sysconf_default "$@";;
-reload)	sysconf_reload "$@";;
-save)	sysconf_save "$@";;
-restore)sysconf_restore "$@";;
-valid)  sysconf_valid "$@";;
-
-sysconf)# just load the functions
-	;;
-
-*)	# help text
-	sysconf_help "$@";;
-esac
diff --git a/recipes/foonas-init/files/turnup b/recipes/foonas-init/files/turnup
deleted file mode 100644
index 73befd2..0000000
--- a/recipes/foonas-init/files/turnup
+++ /dev/null
@@ -1,861 +0,0 @@
-#!/bin/sh
-# turnup
-# See the help block at the end for documentation.
-#
-. /etc/default/functions
-
-#
-# configuration
-#  The following variables control which directories in /var end
-#  up on the rootfs and which end up in a temporary file system.
-INRAM_MEMSTICK="/var/cache /var/lock /var/log /var/run /var/tmp /var/lib/ipkg"
-INRAM_NFS="/var/cache /var/lock /var/run /var/tmp"
-INRAM_DISK=""
-
-#
-# force: override certain checks
-force=
-
-#
-# pfile: the uuid/partition file
-pfile=/etc/uuid_by_partition
-
-#
-# fstype new
-#  The type of the file system mounted on "new"  Outputs the last
-#  piece of information found, which should be the one for the
-#  currently visible mount!
-fstype() {
-	local cwd dev mp type options pass freq result
-	cwd="$(cd "$1"; /bin/pwd)"
-	result=
-	while read dev mp type options pass freq
-	do
-		case "$mp" in
-		"$cwd")	result="$type";;
-		esac
-	done </proc/mounts
-	echo "$result"
-}
-
-#
-# fsoptions arguments
-#  Collapses the mount (-o) options into a single list which is
-#  printed on stdout.  Accepts an arbitrary list of options and
-#  just joins them together.
-fsoptions() {
-	local options
-	options=
-	while test $# -gt 1
-	do
-		case "$1" in
-		-t)	shift;;
-		-o)	if test -n "$2"
-			then
-				if test -n "$options"
-				then
-					options="$options,$2"
-				else
-					options="$2"
-				fi
-			fi
-			shift;;
-		esac
-		shift
-	done
-	if test -n "$options"
-	then
-		echo "$options"
-	else
-		echo defaults
-	fi
-}
-
-#
-# get_flash <directory> {mount options}
-#  mount the flash device, writeable, on the given directory
-get_flash() {
-	local ffsdir ffsdev
-
-	ffsdir="$1"
-	shift
-	test -n "$ffsdir" -a -d "$ffsdir" || {
-		echo "$0: $ffsdir: internal error, flash mount point not a directory" >&2
-		return 1
-	}
-
-	case "$(machine)" in
-	nslu2)	ffsdev="$(mtblockdev Flashdisk)";;
-	*)	ffsdev="$(mtblockdev filesystem)";;
-	esac
-	umountflash "$ffsdev" &&
-	mountflash "$ffsdev" "$ffsdir" "$@"
-}
-
-#
-# check_rootfs [-i] <root fs directory>
-#  Make sure the candidate rootfs is empty
-#  Environment: rootdev=device or NFS root path
-check_rootfs() {
-	local fcount
-
-	case "$1" in
-	-i)	shift
-		case "$force" in
-		-f) return 0;;
-		esac
-
-		fcount="$(find "$1" ! -type d -print | wc -l)"
-		test "$fcount" -eq 0 && return 0
-
-		echo "turnup: $rootdev: partition contains existing files, specify -f to overwrite" >&2
-		return 1;;
-	*)	checkmount "$1" && return 0
-
-		echo "turnup: $rootdev: partition does not seem to be a valid root partition" >&2
-		echo "  The partition must contain a full operating system.  To ensure that" >&2
-		echo "  this is the case it is checked for the following, all of which must" >&2
-		echo "  exist for the bootstrap to work:" >&2
-		echo
-		echo "  1) A directory /mnt." >&2
-		echo "  2) A command line interpreter program in /bin/sh." >&2
-		echo "  3) The program chroot in /sbin or /usr/sbin." >&2
-		echo "  4) The program init in /sbin, /etc or /bin." >&2
-		echo
-		echo "  One or more of these items is missing.  Mount $rootdev on /mnt" >&2
-		echo "  and examine its contents.  You can use turnup disk|nfs -i -f" >&2
-		echo "  to copy this operating system onto the disk, but it may overwrite" >&2
-		echo "  files on the disk." >&2
-		return 1;;
-	esac
-}
-
-#
-# copy_rootfs old new
-#  Make a copy of the given root file system, copying only the
-#  directories needed.  The root must be the flash file system
-copy_rootfs() {
-	local old new
-	old="$1"
-	new="$2"
-	test -d "$old" -a -d "$new" || {
-		echo "turnup: rootfs: copy $old $new: not a directory" >&2
-		return 1
-	}
-	#
-	# There are no problem file names in the flash file system, so
-	# it is possible to use -print, not -print0.  The following
-	# files and directories are not copied:
-	#
-	#   /dev/*
-	#   /boot, /boot/*
-	#   /linuxrc*
-	#   /var/*
-	echo "turnup: copying root file system" >&2
-	(	cd "$1"
-		find . -mount -print |
-		sed '\@^./dev/@d;\@^./boot/@d;\@^./boot$@d;\@^./linuxrc at d;\@^./var/@d' |
-		cpio -p -d -m -u "$2"
-	) || {
-		echo "turnup: rootfs: cpio $old $new failed" >&2
-		return 1
-	}
-	echo "done" >&2
-}
-
-#
-# setup_dev new device_table
-#  In flash file systems /dev is in ramfs, in disk systems /dev
-#  can be populated permanently.  This is done by creating a
-#  single entry '.noram' in /dev - the devices init script will
-#  then populate the directory without overmounting it.  The
-#  devices in the passed in device table are also created, but
-#  note that this is insufficient, /etc/init.d/devices must
-#  also run.
-setup_dev() {
-	test -n "$1" -a -d "$1"/dev -a -r "$2" || {
-		echo "turnup: setup_dev($1,$2): expected a directory and a file" >&2
-		return 1
-	}
-	echo "turnup: initialising dev file system" >&2
-	# init tries to open the following devices:
-	#	/dev/console
-	#	/dev/tty0
-	#	/dev/null
-	# syslog, and maybe other things, only work if fd 1 is valid, therefore
-	# we must create these devices here...
-	makedevs --root="$1" --devtable="$2"
-	:>"$1"/dev/.noram
-	return 0
-}
-
-#
-# setup_bootdev new device_table
-#  As above but actually uses the supplied device table - this is possible if
-#  the table is just used for boot because the extra setup is not required.
-setup_bootdev() {
-	test -n "$1" -a -d "$1"/dev -a -r "$2" || {
-		echo "turnup: setup_bootdev($1,$2): expected a directory and a file" >&2
-		return 1
-	}
-	# NOTE: this fails silently with 0 return code(!) when a directory
-	# does not exist yet things are created within it.
-	makedevs -r "$1" -D "$2"
-}
-
-#
-# setup_var new type
-#  Populates /var.
-#  Removes the /var tmpfs entry from /etc/fstab.
-#  Creates links from /var into /media/ram for NFS and Memstick.
-setup_var() {
-	local ram_targets directory
-
-	test -n "$1" -a -d "$1"/var || {
-		echo "turnup: setup_var($1,$2): expected a directory" >&2
-		return 1
-	}
-	case "$2" in
-	disk|nfs|memstick);;
-	*)	echo "turnup: setup_var($1,$2): expected 'disk', 'nfs' or 'memstick'" >&2
-		return 1;;
-	esac
-	#
-	# populate /var, there is a shell script to do this, but it uses
-	# absolute path names
-	chroot "$1" /bin/busybox sh /etc/init.d/populate-volatile.sh || {
-		echo "turnup: /var: could not populate directory" >&2
-		return 1
-	}
-
-	case "$2" in
-	disk)	ram_targets="$INRAM_DISK";;
-	nfs)	ram_targets="$INRAM_NFS";;
-	memstick)
-		ram_targets="$INRAM_MEMSTICK";;
-	esac
-
-	for directory in $ram_targets
-	do
-		rm -rf "$1/$directory"
-		ln -s "/media/ram/$directory" "$1/$directory"
-	done
-	# the startup link is left for the moment, this seems safer
-	#rm "$1"/etc/rc?.d/[KS]??populate-var.sh
-	# remove the /var tmpfs entry from the new /etc/fstab
-	sed -i '\@[ 	]/var[ 	][ 	]*tmpfs[ 	]@d' "$1"/etc/fstab
-	echo "turnup: tmpfs will no longer be mounted on /var" >&2
-	#
-	# Previous versions of turnup removed populate-var.sh from the
-	# startup links, this one doesn't, so /var can be made back into
-	# a tmpfs just by a change to /etc/fstab.
-	return 0
-}
-
-#
-# setup_syslog new
-#  Moves the syslog to a file - appropriate for disk and nfs types, not
-#  otherwise.
-setup_syslog() {
-	test -n "$1" -a -d "$1"/etc || {
-		echo "turnup: setup_syslog($1): expected a directory" >&2
-		return 1
-	}
-	#
-	# if the syslog is to the buffer redirect it to a file
-	if egrep -q '^DESTINATION="buffer"' "$1"/etc/syslog.conf
-	then
-		if cp "$1"/etc/syslog.conf "$1"/etc/syslog.conf.sav
-		then
-			# the busybox syslog will fail with ROTATESIZE and ROTATEGENS
-			sed -i 's!DESTINATION="buffer"!DESTINATION="file"!
-				/^ROTATESIZE=/d
-				/^ROTATEGENS=/d' "$1"/etc/syslog.conf
-			echo "turnup: /etc/syslog.conf: changed to file buffering" >&2
-			echo " Old (buffer) version in /etc/syslog.conf.sav" >&2
-			echo " Log messages will be in /var/log/messages" >&2
-		else
-			echo "turnup: /etc/syslog.conf: failed to make a copy" >&2
-			echo " syslog will log to a buffer" >&2
-		fi
-	fi
-	return 0
-}
-
-#
-# setup_rootfs type new device_table
-#  Populates the /dev and /var directories, alters the startup to
-#  not mount or populate them further.  Does the right thing according
-#  to the given $type
-setup_rootfs() {
-	local type new table
-	type="$1"
-	new="$2"
-	table="$3"
-
-	test -n "$new" -a -d "$new" -a -f "$table" || {
-		echo "turnup: setup_rootfs($type,$new,$table): expected a directory and a file" >&2
-		return 1
-	}
-
-	case "$type" in
-	flash)	return 0;;
-	disk)	setup_dev "$new" "$table" &&
-		setup_var "$new" "$type" &&
-		setup_syslog "$new";;
-	memstick)
-		setup_bootdev "$new" "$table" &&
-		setup_var "$new" "$type" ;;
-	nfs)	setup_dev "$new" "$table" &&
-		setup_var "$new" "$type" &&
-		setup_syslog "$new";;
-	*)	echo "turnup: setup_rootfs: $type: unknown rootfs type" >&2
-		return 1;;
-	esac
-	# return code of last setup function
-}
-
-#
-# setup_fstab new fsdev fstype fsoptions
-#  Alters the /etc/fstab entry for / to refer to the correct device and
-#  have the correct type and options.  Essential for checkroot to remount
-#  / with the correct options.  Writes the initial uuid file.
-#  bad, since sed won't fail even if it changes nothing.
-setup_fstab() {
-	sed -i '\@^[^ 	]*[ 	][ 	]*/[ 	]@s@^.*$@'"$2	/	$3	$4	1  1"'@' "$1"/etc/fstab
-	egrep -q "^$2	/	$3	$4	1  1\$" "$1"/etc/fstab || {
-		echo "turnup: /etc/fstab: root(/) entry not changed" >&2
-		echo "  you probably need to check the options in /etc/fstab" >&2
-		echo "  to ensure that the root partition is mounted correctly" >&2
-		return 1
-	}
-	#
-	# build $pfile
-	uuid_by_partition >"$1""$pfile" ||
-		echo "turnup: $pfile: blkid failed (ignored)" >&2
-	return 0
-}
-
-#
-# boot_rootfs <boot type> <flash file system> <sleep time> (<device> <uuid>|<nfsroot>) [options]
-#  Change the flash partition (not the current root!) to boot off
-#  the new root file system
-boot_rootfs() {
-	local type ffs sleep device uuid opt
-
-	type="$1"
-	ffs="$2"
-	sleep="$3"
-	device="$4"
-	uuid=
-
-	# test this first as the test does not depend on the correctness
-	# of the other arguments
-	test -n "$ffs" -a -d "$ffs" || {
-		echo "turnup: boot_rootfs($type, $ffs, $device): expected directory" >&2
-		return 1
-	}
-	test -x "$ffs"/boot/"$type" || {
-		echo "turnup: boot_rootfs($type, $ffs, $device): invalid boot type $type" >&2
-		return 1
-	}
-	shift
-	shift
-
-	case "$type" in
-	disk)	test -n "$device" -a -b "$device" || {
-			echo "turnup: boot_rootfs($ffs, $type, $device): expected block device" >&2
-			return 1
-		}
-		uuid="$3"
-		shift 3;;
-	nfs)	shift 2;;
-	flash)	;;
-	ram)	;;
-	*)	echo "turnup: boot_rootfs($type, $ffs, $device): unknown type" >&2
-		return 1;;
-	esac
-
-	#
-	# The /linuxrc records the correct options to mount the device,
-	# since we have already mounted if correctly with these options
-	# we can be sure (maybe) that the boot will work.  If not /boot/disk
-	# falls back to flash.
-	#
-	# This modifies the boot process, until this point no harm has been
-	# done to the system, but at this point the boot rootfs will change
-	rm -f "$ffs"/linuxrc.new || {
-		echo "turnup: boot_rootfs: failed to remove $ffs/linuxrc.new" >&2
-		return 1
-	}
-	case "$type" in
-	flash)	ln -s "boot/flash" "$ffs"/linuxrc.new || {
-			echo "turnup: boot_rootfs: failed to create $ffs/linuxrc.new" >&2
-			return 1
-		};;
-	ram)	{	echo '#!/bin/sh'
-			echo 'rm -f /linuxrc.new'
-			echo 'ln -s boot/flash /linuxrc.new'
-			echo 'mv /linuxrc.new /linuxrc'
-			echo 'exec /boot/ram /dev/ram0'
-			echo 'exec /boot/flash'
-		} >"$ffs"/linuxrc.new &&
-		chmod 744 "$ffs"/linuxrc.new || {
-			echo "turnup: boot_rootfs: failed to write $ffs/linuxrc.new" >&2
-			return 1
-		};;
-	*)	{	echo '#!/bin/sh'
-			test "$sleep" -gt 0 && echo -n "sleep='$sleep' "
-			test -n "$uuid" && echo -n "UUID='$uuid' "
-			echo -n "exec '/boot/$type' '$device'"
-			for opt in "$@"
-			do
-				echo -n " '$opt'"
-			done
-			echo
-			echo 'exec /boot/flash'
-		} >"$ffs"/linuxrc.new &&
-		chmod 744 "$ffs"/linuxrc.new || {
-			echo "turnup: boot_rootfs: failed to write $ffs/linuxrc.new" >&2
-			return 1
-		};;
-	esac
-	rm -f "$ffs"/linuxrc.sav || {
-		echo "turnup: boot_rootfs: failed to remove $ffs/linuxrc.sav" >&2
-		return 1
-	}
-	ln "$ffs"/linuxrc "$ffs"/linuxrc.sav || {
-		echo "turnup: boot_rootfs: failed to save /linuxrc.sav" >&2
-		return 1
-	}
-	mv -f "$ffs"/linuxrc.new "$ffs"/linuxrc || {
-		echo "turnup: boot_rootfs: failed to install new /linuxrc" >&2
-		return 1
-	}
-	return 0
-}
-
-#
-# disk [-m] [-i] [-s<time>] <device> {options}
-#  Carefully copy the flash file system to the named device.
-disk() {
-	local setup_type sleep init device uuid new ffs fst fso
-
-	setup_type=disk
-	sleep=0
-	init=
-	while test $# -gt 0
-	do
-		case "$1" in
-		-f)	force="$1"
-			shift;;
-		-m)	setup_type=memstick
-			shift;;
-		-i)	init="$1"
-			shift;;
-		-s*)	sleep="${1#-s}"
-			sleep="${sleep:-10}"
-			shift;;
-		*)	break;;
-		esac
-	done
-
-	device="$1"
-	test -n "$device" -a -b "$device" || {
-		echo "turnup disk: $device: block device required" >&2
-		return 1
-	}
-	shift
-
-	# find the uuid if available
-	uuid="$(blkid -c /dev/null -s UUID -o value "$device")"
-	# XXX nasty hack - using the UUID fails on storcenter, for now,
-	# probably due to various devfs problems.  fix later.
-	if [ $(machine) = storcenter ]; then
-		uuid=
-	fi
-
-	# make temporary directories for the mount points
-	new="/tmp/rootfs.$$"
-	ffs="/tmp/flashdisk.$$"
-	mkdir "$new" "$ffs" || {
-		echo "turnup: disk: failed to create temporary directories" >&2
-		return 1
-	}
-
-	# make sure we can get to the flash file system first
-	get_flash "$ffs" || {
-		rmdir "$new" "$ffs"
-		return 1
-	}
-
-	# Now mount the device with the given options, note that specifying
-	# read only is *not* an option, this is important because the boot/disk
-	# script needs a rw file system
-	status=1
-	fst=
-	fso="$(fsoptions "$@")"
-	if	if test -n "$uuid"
-		then
-			mount "$@" -U "$uuid" "$new"
-		else
-			mount "$@" "$device" "$new"
-		fi
-	then
-		fst="$(fstype "$new")"
-		umount "$new" ||
-			echo "turnup disk: $device($new): umount does not seem to work" >&2
-	fi
-
-	if test -n "$fst" &&
-		if test -n "$uuid"
-		then
-			mount -t "$fst" -o "$fso" -U "$uuid" "$new"
-		else
-			mount -t "$fst" -o "$fso" "$device" "$new"
-		fi
-	then
-		if rootdev="$device" check_rootfs $init "$new" && {
-			test -z "$init" || {
-				copy_rootfs "$ffs" "$new" &&
-				setup_rootfs "$setup_type" "$new" "$ffs"/etc/device_table
-			}
-		   }
-		then
-			setup_fstab "$new" "$device" "$fst" "$fso"
-			status=0
-		fi
-
-		# clean up the disk.  It is worrying if this umount fails!
-		umount "$new" || test "$force" = "-f" || {
-			echo "turnup disk: $device: umount failed" >&2
-			echo "  you must unmount this device cleanly yourself, then use" >&2
-			if test -z "$init"
-			then
-				echo "  turnup with the -f option to boot from the device" >&2
-			else
-				echo "  turnup without the -i option to boot from the device" >&2
-			fi
-			status=1
-		}
-
-		# if everything went ok boot from this disk
-		if test $status -eq 0
-		then
-			# memsticks boot like disks, so ignore the -m
-			boot_rootfs disk "$ffs" "$sleep" "$device" "$uuid" -t "$fst" -o "$fso"
-		fi
-	else
-		echo "turnup disk: $device($*): unable to mount device on $new" >&2
-		# If it worked first time
-		if test -n "$fst"
-		then
-			echo "  options used: -t $fst -o $fso [error in this script]" >&2
-			test -n "$uuid" &&
-				echo "  uuid: $uuid (passed with -U)" >&2
-		fi
-	fi
-
-	# clean up the flash file system
-	umount "$ffs"
-	rmdir "$new" "$ffs"
-	return $status
-}
-
-#
-# boot_reset <type>
-#  Resets the boot type to flash or ram, as appropriate
-boot_reset() {
-	local ffs typ status
-
-	case "$1" in
-	flash|ram)type="$1"
-		shift;;
-	*)	echo "turnup: boot_reset($1): invalid type" >&2
-		return 1;;
-	esac
-
-	ffs="/tmp/flashdisk.$$"
-	mkdir "$ffs" || {
-		echo "turnup: $1: failed to create temporary directory" >&2
-		return 1
-	}
-
-	get_flash "$ffs" || {
-		rmdir "$ffs"
-		return 1
-	}
-
-	# now try to set the /linuxrc appropriately
-	boot_rootfs "$type" "$ffs"
-	status=$?
-
-	# clean up
-	umount "$ffs"
-	rmdir "$ffs"
-	return $status
-}
-
-#
-# nfs [-i] <root partition> {options}
-#  Copy the flash file system to the given NFS root partition.
-nfs() {
-	local init nfsroot new ffs
-
-	init=
-	while test $# -gt 0
-	do
-		case "$1" in
-		-i)	init="$1"
-			shift;;
-		-f)	force="$1"
-			shift;;
-		*)	break;;
-		esac
-	done
-
-	nfsroot="$1"
-	test -n "$nfsroot" || {
-		echo "turnup nfs: $nfsroot: NFS root file system required" >&2
-		return 1
-	}
-	shift
-
-	# make temporary directories for the mount points
-	new="/tmp/rootfs.$$"
-	ffs="/tmp/flashdisk.$$"
-	mkdir "$new" "$ffs" || {
-		echo "turnup nfs: failed to create temporary directories" >&2
-		return 1
-	}
-
-	# make sure we can get to the flash file system first
-	get_flash "$ffs" || {
-		rmdir "$new" "$ffs"
-		return 1
-	}
-
-	# Now mount the device with the given options, note that specifying
-	# read only is *not* an option, this is important because the boot/disk
-	# script needs a rw file system
-	status=1
-	fst=
-	# These settings for for NFS, something better will probably have to
-	# be done to support other network file systems.
-	nfsopt="nolock,noatime,hard,intr,rsize=1024,wsize=1024"
-	fso="$(fsoptions -o "$nfsopt" "$@")"
-	if mount -o "$nfsopt" "$@" "$nfsroot" "$new"
-	then
-		fst="$(fstype "$new")"
-		umount "$new" ||
-			echo "turnup nfs: $nfsroot($new): umount does not seem to work" >&2
-	fi
-
-	if test -n "$fst" && mount -t "$fst" -o "$fso" "$nfsroot" "$new"
-	then
-		if :>"$new"/ttt && test -O "$new"/ttt && rm "$new"/ttt
-		then
-			if rootdev="$nfsroot" check_rootfs $init "$new" && {
-				test -z "$init" || {
-					copy_rootfs "$ffs" "$new" &&
-					setup_rootfs nfs "$new" "$ffs"/etc/device_table
-				}
-			   }
-			then
-				setup_fstab "$new" "$nfsroot" "$fst" "$fso"
-				status=0
-			fi
-		else
-			echo "turnup nfs: $nfsroot: partition must be exported no_root_squash" >&2
-		fi
-
-		# clean up the disk.  It is worrying if this umount fails!
-		umount "$new" || test "$force" = "-f" || {
-			echo "turnup nfs: $nfsroot: umount failed" >&2
-			if test $status -eq 0
-			then
-				echo "  you must unmount this partition cleanly yourself, then use" >&2
-				if test -z "$init"
-				then
-					echo "  turnup with the -f option to boot from the NFS root" >&2
-				else
-					echo "  turnup without the -i option to boot from the NFS root" >&2
-				fi
-				status=1
-			fi
-		}
-
-		# if everything went ok boot from this disk
-		if test $status -eq 0
-		then
-			# the options used are exactly those which worked before.
-			boot_rootfs nfs "$ffs" 0 "$nfsroot" -t nfs -o "$fso"
-		fi
-	else
-		echo "turnup nfs: $nfsroot($*): unable to mount device on $new" >&2
-		# If it worked first time
-		if test -n "$fst"
-		then
-			echo "  options obtained: -t $fst -o $fso" >&2
-		fi
-	fi
-
-	# clean up the flash file system
-	umount "$ffs"
-	rmdir "$new" "$ffs"
-	return $status
-}
-
-#
-# read_one 'prompt' 'group' 'name'
-#  read a single value
-read_one() {
-	local n o
-	o="$(sysval "$2" "$3")"
-	echo -n "$1 [$o]: " >/dev/tty
-	read n </dev/tty
-	test -z "$n" && n="$o"
-	eval "$3='$n'"
-}
-
-#
-# init_network
-#  Change the network initialisation
-init_network() {
-	# fix the root password
-	echo "Please enter a new password for 'root'." >/dev/tty
-	echo "The password must be non-empty for ssh login to succeed!" >/dev/tty
-	passwd
-	# now the network configuration
-	read_one "Host name" network disk_server_name
-	read_one "Domain name" network w_d_name
-	read_one "Boot protocol (dhcp|static)" network bootproto
-	case "$bootproto" in
-	static) read_one "IP address" network ip_addr
-		read_one "IP netmask" network netmask
-		read_one "IP gateway" network gateway
-		read_one "First DNS server" network dns_server1
-		read_one "Second DNS server" network dns_server2
-		read_one "Third DNS server" network dns_server3
-		echo "$ip_addr       $disk_server_name" >> /etc/hosts
-		;;
-	dhcp)	sed -i -e "s/localhost\$/localhost $disk_server_name/" /etc/hosts
-		;;
-	*)	bootproto=dhcp;;
-	esac
-	#
-	# The other stuff which cannot be changed
-	hw_addr="$(config mac)"
-	lan_interface="$(config iface)"
-	#
-	# Write this out to a new sysconf
-	{	echo "[network]"
-		echo "hw_addr=$hw_addr"
-		echo "lan_interface=$lan_interface"
-		test -n "$disk_server_name" && echo "disk_server_name=$disk_server_name"
-		test -n "$w_d_name" && echo "w_d_name=$w_d_name"
-		echo "bootproto=$bootproto"
-		case "$bootproto" in
-		static)	echo "ip_addr=$ip_addr"
-			test -n "$netmask" && echo "netmask=$netmask"
-			test -n "$gateway" && echo "gateway=$gateway"
-			test -n "$dns_server1" && echo "dns_server1=$dns_server1"
-			test -n "$dns_server2" && echo "dns_server2=$dns_server2"
-			test -n "$dns_server3" && echo "dns_server3=$dns_server3"
-			;;
-		esac
-	} >/etc/default/sysconf
-	#
-	# And reload the result
-	sysconf reload
-	#
-	# The remove the spurious 'init' motd
-	rm /etc/motd
-}
-
-#
-# Basic command switch (this should be the only thing in this
-# script which actually does anything!)
-case "$1" in
-init)	shift
-	if init_network "$@"
-	then
-		echo "turnup init: you must reboot for the changes to take effect" >&2
-		echo " You may want to run 'turnup preserve' to save these settings," >&2
-		echo " after making any additional configuration changes which you" >&2
-		echo " require." >&2
-	else
-		exit 1
-	fi;;
-disk)	shift
-	disk "$@";;
-memstick)
-	shift
-	disk -m "$@" -o noatime;;
-nfs)	shift
-	nfs "$@";;
-flash)	boot_reset flash;;
-ram)	boot_reset ram;;
-preserve)
-	shift
-	sysconf save "$@";;
-restore)
-	shift
-	sysconf restore "$@";;
-*)	echo "\
-usage: turnup command [options]
- commands:
-  help
-    output this help
-  init
-    correct errors in network information
-    initialise network information when DHCP is not available
-    change network information
-  disk [-i] [-s<seconds>] <device>|<uuid> [mount options]
-    With -i make <device> a bootable file system then (with or
-    without -i) arrange for the next reboot to use that device.
-    The device must already be formatted as a file system, with
-    -i it must be completely empty, without it must contain an
-    apparently bootable file system. -s (for example -s5)
-    specifies a delay in seconds to wait at boot time before
-    mounting the device.
-  memstick [-i] <device>|<uuid> [mount options]
-    Behaves as disk however options appropriate to a flash memory
-    stick are automatically added
-  nfs [-i] <nfs mount path> [mount options]
-    <nfs mount path> must be a mountable NFS file system.  With
-    -i the partition must be empty and is initialised with a
-    bootable file system.  Without -i the partition must already
-    contain a bootable file system.  In either case the NFS
-    partition must be available to be mounted without root id
-    sqashing (i.e. root must be root) and it will be selected
-    as the root file system for subsequent reboots.
-    A default set of -o options are provided, additional options
-    may be given on the command line (multiple -o options will
-    be combined into a single -o).
-  flash
-    Revert to booting from the flash disk on next reboot.
-  ram
-    Boot (once) into a ramdisk, subsequent boots will be to
-    the flash file system.
-  preserve
-    Save the system configuration to the SysConf partition, you
-    will need to create the SysConf partition from the boot loader
-    before using this if SysConf does not already exist.  This
-    just runs 'sysconf save'.
-  restore
-    Restore a previously saved system configuration.  This just
-    runs 'sysconf restore'.
- disk formatting:
-  The argument to 'nfs' or 'disk' must be an empty partition
-  of sufficient size to hold the root file system (at least
-  16MByte but more is recommended to allow package installation).
-  An appropriate ext3 partition can be made using the command:
-
-    mke2fs -j <device>  # for example: /dev/sda1
-
-  An appropriate NFS partition can be emptied using 'rm', but
-  must be set up (exported) on the NFS server." >&2
-	exit 0;;
-esac
-# Exit with return code from command.
diff --git a/recipes/foonas-init/foonas-init_0.10.bb b/recipes/foonas-init/foonas-init_0.10.bb
deleted file mode 100644
index 584b276..0000000
--- a/recipes/foonas-init/foonas-init_0.10.bb
+++ /dev/null
@@ -1,121 +0,0 @@
-DESCRIPTION = "FooNAS initial boot and config"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "GPL"
-DEPENDS = "base-files devio"
-RDEPENDS_${PN} = "busybox devio"
-PR = "r2"
-
-SRC_URI = "file://initscripts/fixfstab \
-	   file://initscripts/syslog.buffer \
-	   file://initscripts/syslog.file \
-	   file://initscripts/syslog.network \
-	   file://initscripts/rmrecovery \
-	   file://initscripts/sysconfsetup \
-	   file://initscripts/umountinitrd.sh \
-	   file://initscripts/loadmodules.sh \
-	   file://functions \
-	   file://modulefunctions \
-	   file://conffiles \
-	   file://sysconf \
-	   file://turnup \
-	   file://reflash \
-	   file://links.conf \
-	   "
-
-SBINPROGS = ""
-USRSBINPROGS = ""
-CPROGS = "${USRSBINPROGS} ${SBINPROGS}"
-SCRIPTS = "turnup reflash sysconf"
-INITSCRIPTS = "syslog.buffer syslog.file syslog.network \
-	rmrecovery sysconfsetup umountinitrd.sh \
-	fixfstab loadmodules.sh"
-
-# This just makes things easier...
-
-S="${WORKDIR}"
-
-do_compile() {
-	set -ex
-	for p in ${CPROGS}
-	do
-		${CC} ${CFLAGS} -o $p $p.c
-	done
-	set +ex
-}
-
-do_install() {
-	set -ex
-
-	# Directories
-        install -d ${D}${sysconfdir} \
-                   ${D}${sysconfdir}/default \
-                   ${D}${sysconfdir}/init.d \
-		   ${D}${sysconfdir}/modutils \
-                   ${D}${sysconfdir}/udev \
-		   ${D}${sbindir} \
-		   ${D}${base_sbindir} \
-		   ${D}/initrd \
-
-	# C programs
-	for p in ${USRSBINPROGS}
-	do
-		install -m 0755 $p ${D}${sbindir}/$p
-	done
-	for p in ${SBINPROGS}
-	do
-		install -m 0755 $p ${D}${base_sbindir}/$p
-	done
-
-	# Shell scripts
-	for p in ${SCRIPTS}
-	do
-		install -m 0755 $p ${D}${base_sbindir}/$p
-	done
-
-	#
-	# Init scripts
-	install -m 0644 functions ${D}${sysconfdir}/default
-	install -m 0644 modulefunctions ${D}${sysconfdir}/default
-	for s in ${INITSCRIPTS}
-	do
-		install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/
-	done
-
-	#
-	# Udev configuration files
-	install -m 0644 links.conf ${D}${sysconfdir}/udev
-
-	# Configuration files
-	install -m 0644 conffiles ${D}${sysconfdir}/default
-
-	set +ex
-}
-
-# NB: do not use '08' (etc) for the first argument after start/stop,
-# the value is interpreted as an octal number if there is a leading
-# zero.
-pkg_postinst_foonas-init() {
-	opt=
-	test -n "$D" && opt="-r $D"
-	update-rc.d $opt hwclock.sh		start  8 S . start 45 0 6 .
-	update-rc.d $opt umountinitrd.sh	start  9 S .
-	update-rc.d $opt fixfstab		start 10 S .
-	update-rc.d $opt syslog.buffer		start 11 S . start 49 0 6 .
-	update-rc.d $opt sysconfsetup		start 12 S .
-	update-rc.d $opt loadmodules.sh		start 21 S .
-	update-rc.d $opt syslog.file		start 39 S . start 47 0 6 .
-	update-rc.d $opt syslog.network		start 44 S . start 39 0 6 .
-	update-rc.d $opt rmrecovery             start 99 1 2 3 4 5 .
-}
-
-pkg_postrm_foonas-init() {
-	opt=
-	test -n "$D" && opt="-r $D"
-	for s in ${INITSCRIPTS}
-	do
-		update-rc.d $opt "$s" remove
-	done
-}
-
-FILES_${PN} = "/"
-- 
1.7.1





More information about the Openembedded-devel mailing list