Module Name:    src
Committed By:   christos
Date:           Sun Feb  3 09:16:25 UTC 2013

Modified Files:
        src/distrib/utils/embedded: mkimage
        src/distrib/utils/embedded/conf: beagleboard.conf evbarm.conf rpi.conf
            usermode.conf

Log Message:
switch to makefs


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/distrib/utils/embedded/mkimage
cvs rdiff -u -r1.4 -r1.5 src/distrib/utils/embedded/conf/beagleboard.conf \
    src/distrib/utils/embedded/conf/evbarm.conf
cvs rdiff -u -r1.12 -r1.13 src/distrib/utils/embedded/conf/rpi.conf
cvs rdiff -u -r1.2 -r1.3 src/distrib/utils/embedded/conf/usermode.conf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/utils/embedded/mkimage
diff -u src/distrib/utils/embedded/mkimage:1.16 src/distrib/utils/embedded/mkimage:1.17
--- src/distrib/utils/embedded/mkimage:1.16	Wed Jan 30 02:40:34 2013
+++ src/distrib/utils/embedded/mkimage	Sun Feb  3 04:16:24 2013
@@ -1,10 +1,12 @@
-#! /bin/sh
-
-# $NetBSD: mkimage,v 1.16 2013/01/30 07:40:34 skrll Exp $
+#!/bin/sh
+# $NetBSD: mkimage,v 1.17 2013/02/03 09:16:24 christos Exp $
 #
-# Copyright (c) 2012 Alistair Crooks <a...@netbsd.org>
+# Copyright (c) 2013 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
+# This code is derived from software contributed to The NetBSD Foundation
+# by Christos Zoulas.
+#
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
@@ -13,192 +15,58 @@
 # 2. Redistributions in binary form must reproduce the above copyright
 #    notice, this list of conditions and the following disclaimer in the
 #    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 3. Neither the name of The NetBSD Foundation nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
 #
 
-# find next available vnd, from kre
-next_avail ()
-{
-	local dev="$1"
-	local N=$(( ${#dev} + 1 ))
-	local unit units
-
-	units=$(
-		sysctl -n hw.disknames		|
-			tr ' ' '\012'		|
-			grep '^'"${dev}"'[0-9]'	|
-			sort -n -k 1.$N			)
-
-	test -z "${units}" && {
-		test -e "/dev/${dev}0a" || {
-			echo >&2 "No ${dev}s available!"
-			return 1
-		}
-		echo "${dev}0"
-		return
-	}
-
-	N=0
-	for unit in ${units}
-	do
-		if [ "${unit}" = "${dev}${N}" ]
-		then
-			N=$(( N + 1 ))
-		else
-			echo "${dev}${N}"
-			return
-		fi
-	done
-
-	test -e /dev/"${dev}${N}a" || {
-		echo >&2 "All ${dev}s in use"
-		return 1
-	}
+DIR="$(cd "$(dirname "$0")" && pwd)"
+PROG="$(basename "$0")"
+
+src="/usr/src"
+release="/usr/obj/evbarm/release"
+sets="base comp etc games man misc modules text"
+xsets="xbase xcomp xetc xfont xserver" 
+minfree="10%"
+bar="==="
 
-	echo "${dev}${N}"
+tmp="$(mktemp -d "/tmp/$PROG.XXXXXX")"
+mnt="${tmp}/mnt"
+mkdir -p "${mnt}/etc" "${mnt}/dev" "${mnt}/boot"
+trap "cleanup" 0 1 2 3 15
+
+cleanup() {
+	case "$tmp" in
+	/tmp/$PROG.*)	rm -fr "$tmp";;
+	esac
+}
+
+getsize() {
+	set -- $(ls -l $1)
+	echo $5
 }
 
 usage() {
 	cat << EOF 1>&2
-Usage: $PROG -h <host-arch> [-S <setsdir>] [-c <custom-files-dir>] [-s <Mb size>] [<image>]
+Usage: $PROG -h <host-arch> [-K <kerneldir>] [-S <srcdir>] [-R <releasedir>] [-c <custom-files-dir>] [-s <Mb size>] [<image>]
 EOF
 	exit 1
 }
 
-# Return the filesystem size for an ls -l or tar -xvf list
-# Directories and symlinks in tar are 0 size, we assume one block
-# (which is too much), we round up by the fragment size the rest.
-getfssize() {
-	local bsize="$1"
-	local fsize="$2"
-
-	awk -v fsize=${fsize} -v bsize=${bsize} '
-	NF >= 9 && $1 != "tar:" {
-		if ($5 == 0)
-			tot += bsize;
-		else
-			tot += ((int)(($5 + fsize - 1) / fsize)) * fsize;
-	}
-	END {
-		printf("%d\n", tot);
-	}'
-}
-
-# find the size of the gzipped files in a .tgz archive
-# Directories appear as 0, so count them as one block
-# and round up files to a fragment.
-sizeone() {
-	if [ ! -f "$1" ]
-	then
-		echo "$PROG: Missing set $1" 1>&2
-		echo 0
-		return;
-	fi
-
-        case "$1" in 
-        *.tgz|*.tar.gz|*.tbz|*.tar.bz2|*.txz|*.tar.xz)
-                tar tvzf "$1" | getfssize ${bsize} ${fsize}
-                ;;
-        *)
-                echo 0
-                ;; 
-        esac
-}
-
-
-# Return the usable filesystem size in bytes, given the total size in bytes,
-# and optionally block and fragment sizes
-getffssize() {
-	local bytes="$1"
-	local barg
-	local farg
-	local overhead
-
-	if [ -n "$2" ]
-	then
-		barg="-b $2"
-		if [ -n "$3" ]
-		then
-			farg="-f $3"
-		fi
-	fi
-
-	overhead=$(newfs -N ${farg} ${barg} -s "${bytes}b" -F /dev/null |
-	    awk '/using/ {
-		printf("%d\n", substr($6, 1, length($6) - 3) * 1024 * 1024);
-	    }'
-	)
-	echo $(( ${bytes} - ${overhead} ))
-}
-
-# Compute the size of an ffs filesystem that can fit x bytes.
-# Instead of duplicating the newfs calculations here we let
-# it do the job, using binary search.
-makeffssize() {
-	local bytes=$1
-	local bsize=$2
-	local fsize=$3
-	local max=$(( 2 * ${bytes} ))
-	local min="${bytes}"
-	local cur
-	local res
-	while true; do
-		cur="$(( ( ${max} + ${min} ) / 2 ))"
-		res="$(getffssize "${cur}" ${bsize} ${fsize})"
-#		echo ${min} ${cur} ${max} ${res} ${bytes} 1>&2
-		if [ "${res}" -eq "${bytes}" ]
-		then
-		    break
-		elif [ "$(( ${min} + 1 ))" -ge "${max}" ]
-		then
-		    break
-		elif [ "${res}" -lt "${bytes}" ]
-		then
-		    min="${cur}"
-		elif [ "${res}" -gt "${bytes}" ]
-		then
-		    max="${cur}"
-		fi
-	done
-	echo "${cur}"
-}
-
-finish() {
-	cleanup
-	${sudo} umount ${mnt}
-	${sudo} vnconfig -u ${vnddev}
-	rm -fr ${mnt}
-}
-
-
-DIR="$(dirname "$0")"
-PROG="$(basename "$0")"
-bar="==="
-sudo=
-mnt="${TMPDIR:-/tmp}/image.$$"
-src="/usr/src"
-obj="/usr/obj"
-
-sets="base comp etc games man misc modules tests text"
-xsets="xbase xcomp xetc xfont xserver"
-
-# Presumable block and fragment size.
-bsize=16384
-fsize=2048
-mtob=$(( 1024 * 1024 ))
-
 # First pass for options to get the host
-OPTS="S:c:h:s:x"
+OPTS="K:R:S:c:h:s:x"
 while getopts "$OPTS" f
 do
 	case $f in
@@ -220,20 +88,24 @@ fi
 
 . "${DIR}/conf/${h}.conf"
 
+selected_sets="$sets"
+
 OPTIND=1
 while getopts "$OPTS" f
 do
 	case $f in
-	S)	setsdir="$OPTARG";;
+	K)	release="$OPTARG";;
+	R)	kerneldir="$OPTARG";;
+	S)	src="$OPTARG";;
 	c)	custom="$OPTARG";;
 	h)	;;
 	s)	size="$OPTARG";;
-	x)	sets="$sets $xsets";;
+	x)	selected_sets="$sets $xsets";;
 	*)	usage;;
 	esac
 done
 
-trap finish 0 1 2 3 15
+trap cleanup 0 1 2 3 15
 
 shift $(( "$OPTIND" - 1 ))
 if [ -n "$1" ]; then
@@ -242,107 +114,40 @@ if [ -n "$1" ]; then
 	shift
 fi
 
-# calculate the set bytes
-setbytes=0
-echo -n "${bar} computing set sizes ("
-b=
-for s in ${sets}; do
-	one="$(sizeone ${setsdir}/${s}.tgz)"
-	echo -n "$b$s=$(( ${one} / ${mtob} ))MB"
-	setbytes=$(( ${setbytes} +  ${one} ))
-	b=" "
-done
-echo "): $(( ${setbytes} / ${mtob} ))MB ${bar}"
+. "$DIR/conf/rpi.conf"
 
-# calculate size of custom files
-custbytes=0
-if [ -d "${custom}" ]; then
-	custbytes=$(ls -lR "${custom}" | getfssize ${bsize} ${fsize})
-fi
-echo "${bar} computing custom sizes: $(( ${custbytes} / ${mtob} ))MB ${bar}"
-
-# how many bytes
-rawbytes="$(( ${setbytes} + ${custbytes} ))"
-echo -n "${bar} computing ffs filesystem size for $(( ${rawbytes} / ${mtob} ))MB: "
-ffsbytes="$(makeffssize "${rawbytes}")"
-ffsmb=$(( ${ffsbytes} / ${mtob} ))
-echo " ${ffsmb}MB ${bar}"
-
-# total in MB
-total=$(( ${ffsmb} + ${overhead} ))
-echo "${bar} overhead: ${overhead}MB ${bar}"
-
-if [ $size -eq 0 ]; then
-        # auto-size the pkgs fs
-        newsize=${total}
-else
-        # check that we've been given enough space
-        if [ ${total} -gt ${size} ]; then
-                echo "$PROG: Given size is ${size} MB, but we need ${total} MB" >&2
-                exit 1
-        fi
-	newsize=${size}
-fi
-
-echo "${bar} making a new ${newsize} MB image in ${image} ${bar}"
-dd if=/dev/zero of=${image} bs=1m count=${newsize} conv=sparse
-
-vnddev=$(next_avail vnd)
-echo "${bar} mounting image via vnd ${vnddev} ${bar}"
-${sudo} vnconfig ${vnddev} ${image}
-${sudo} mkdir -p ${mnt}
-make_filesystems
-
-${sudo} mkdir -p ${mnt}/etc ${mnt}/dev
-
-echo -n "${bar} installing sets:"
-(cd ${mnt} &&
-	for s in ${sets}; do
-		ss="${setsdir}/${s}.tgz"
-		if [ -f "${ss}" ]; then
-			echo -n " ${s}"
-			${sudo} tar xpzf "${ss}"
-		fi
-	done
-)
-echo " ${bar}"
-
-echo "${bar} performing customisations ${bar}"
+echo ${bar} configuring sets ${bar}
+(echo '/set type=dir uname=root gname=wheel mode=0755'
+for i in $selected_sets; do
+	s="${release}/etc/mtree/set.$i"
+	[ -f "$s" ] && cat "$s"
+done) > "$tmp/selected_sets"
 
 make_fstab
+customize
+populate
 
-${sudo} cat > ${mnt}/etc/rc.conf << EOF
-#
-# see rc.conf(5) for more information.
-#
-# Use program=YES to enable program, NO to disable it. program_flags are
-# passed to the program on the command line.
-#
-
-# Load the defaults in from /etc/defaults/rc.conf (if it's readable).
-# These can be overridden below.
-#
-if [ -r /etc/defaults/rc.conf ]; then
-        . /etc/defaults/rc.conf
+(cd ${mnt}; mtree -c -k all | mtree -C -k all) >> "$tmp/selected_sets"
+if [ -n ${msdosid} ]; then
+	echo ${bar} Populating msdos filesystem ${bar}
+	makefs -t msdos -O $((${init} / 2))m -s $((${boot} / 2))m \
+	    ${image} ${mnt}/boot
 fi
 
-# If this is not set to YES, the system will drop into single-user mode.
-#
-rc_configured=YES
-
-hostname=${h}
-
-EOF
-
-customize
+echo ${bar} Populating ffs filesystem ${bar}
+makefs -t ffs -rx -O $(((${init} + ${boot} + ${swap}) / 2))m \
+    -F "$tmp/selected_sets" ${image} "${release}" "${mnt}"
 
-for d in ${specialdirs}; do
-	${sudo} mkdir -p ${mnt}/${d}
-done
-
-if [ \( -n "${custom}" \) -a \( -d "${custom}" \) ]; then
-	echo "${bar} user customisations from files in ${custom} ${bar}"
-	(cd ${custom} && ${sudo} pax -rwpe . ${mnt})
+if [ -z "$size" ]; then
+	size=$(getsize ${image})
 fi
+newsize=$((size / 2 / 1024))
 
-exit 0
+echo ${bar} Adding label ${bar}
+make_label > ${tmp}/label
+disklabel -R -F ${image} ${tmp}/label
+if [ -n ${msdosid} ]; then
+	echo ${bar} Running fdisk ${bar}
+	fdisk -f -u -0 -s ${msdosid}/${init}/${boot} -F ${image}
+fi
+echo ${bar} Image is ${image} ${bar}

Index: src/distrib/utils/embedded/conf/beagleboard.conf
diff -u src/distrib/utils/embedded/conf/beagleboard.conf:1.4 src/distrib/utils/embedded/conf/beagleboard.conf:1.5
--- src/distrib/utils/embedded/conf/beagleboard.conf:1.4	Mon Jan 28 04:06:19 2013
+++ src/distrib/utils/embedded/conf/beagleboard.conf	Sun Feb  3 04:16:25 2013
@@ -1,4 +1,4 @@
-# $NetBSD: beagleboard.conf,v 1.4 2013/01/28 09:06:19 skrll Exp $
+# $NetBSD: beagleboard.conf,v 1.5 2013/02/03 09:16:25 christos Exp $
 # BeagleBoard customization script used by mkimage
 #
 board=beagleboard
@@ -10,10 +10,8 @@ kerneldir=$src/sys/arch/evbarm/compile/o
 kernelimg=netbsd.ub
 loadaddr=81000000
 
-
-
-make_filesystems() {
-	make_filesystems_evbarm
+make_label() {
+	make_label_evbarm
 }
 
 make_fstab() {
@@ -22,10 +20,10 @@ make_fstab() {
 
 customize() {
 	customize_evbarm
-	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
+	cat >> ${mnt}/etc/rc.conf << EOF
 mdnsd=YES
 EOF  
-	${sudo} cat > ${mnt}/boot/uEnv.txt << EOF
+	cat > ${mnt}/boot/uEnv.txt << EOF
 loaduimage=fatload mmc 0 ${loadaddr} ${kernelimg}; bootm ${loadaddr} root=ld0a
 EOF
 }
Index: src/distrib/utils/embedded/conf/evbarm.conf
diff -u src/distrib/utils/embedded/conf/evbarm.conf:1.4 src/distrib/utils/embedded/conf/evbarm.conf:1.5
--- src/distrib/utils/embedded/conf/evbarm.conf:1.4	Mon Jan 28 04:06:19 2013
+++ src/distrib/utils/embedded/conf/evbarm.conf	Sun Feb  3 04:16:25 2013
@@ -1,9 +1,8 @@
-# $NetBSD: evbarm.conf,v 1.4 2013/01/28 09:06:19 skrll Exp $
+# $NetBSD: evbarm.conf,v 1.5 2013/02/03 09:16:25 christos Exp $
 # evbarm shared config
 #
 image=$HOME/${board}.img
 
-setsdir=$obj/evbarm/media/evbarm/binary/sets/
 specialdirs="/kern /proc"
 
 swap=256
@@ -13,12 +12,8 @@ init=8
 
 size=0		# autocompute
 msdosid=12
-overhead=$(( ${swap} + ${extra} + ${init} + ${boot} ))
-
-tmp=/tmp/${board}.disklabel.$$
-
-make_filesystems_evbarm() {
 
+make_label_evbarm() {
 	local totalsize=$(( ${newsize} * 1024 * 2 ))
 	local swapsize=$(( ${swap} * 1024 ))
 	local bootsize=$(( ${boot} * 1024 ))
@@ -35,7 +30,7 @@ make_filesystems_evbarm() {
 	local spc=2048
 	local cylinders=$(( ${totalsize} / ${spc} ))
 
-	cat > ${tmp} << EOF
+	cat << EOF
 type: SCSI
 disk: STORAGE DEVICE
 label: fictitious
@@ -61,17 +56,10 @@ drivedata: 0 
  d:   ${totalsize} 0             unused      0     0          #
  e:   ${bootsize}  ${bootoffset} MSDOS                        #
 EOF
-	${sudo} disklabel -R ${vnddev} ${tmp}
-	${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image}
-	${sudo} newfs /dev/r${vnddev}a
-	${sudo} newfs_msdos /dev/r${vnddev}e
-	${sudo} mount -o async /dev/${vnddev}a ${mnt}
-	${sudo} mkdir ${mnt}/boot
-	${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot
 }
 
 make_fstab_evbarm() {
-	${sudo} cat > ${mnt}/etc/fstab << EOF
+	cat > ${mnt}/etc/fstab << EOF
 # NetBSD /etc/fstab
 # See /usr/share/examples/fstab/ for more examples.
 /dev/ld0a	/		ffs	rw,log	1 1
@@ -84,19 +72,14 @@ EOF
 }
 
 customize_evbarm() {
-	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
+	cat >> ${mnt}/etc/rc.conf << EOF
 sshd=YES
 dhcpcd=YES
 EOF
-	if [ ! -f ${mnt}/dev/MAKEDEV ]; then
-		echo ${PROG}: Missing ${mnt}/dev/MAKEDEV 1>&2
+	if [ ! -f ${release}/dev/MAKEDEV ]; then
+		echo ${PROG}: Missing ${release}/dev/MAKEDEV 1>&2
 		exit 1
 	fi
 	echo "${bar} running MAKEDEV ${bar}"
-	(cd ${mnt}/dev && ${sudo} sh MAKEDEV all)
-}
-
-cleanup_evbarm() {
-    rm -f ${tmp}
-    ${sudo} umount ${mnt}/boot
+	(cd ${mnt}/dev && sh ${release}/dev/MAKEDEV all)
 }

Index: src/distrib/utils/embedded/conf/rpi.conf
diff -u src/distrib/utils/embedded/conf/rpi.conf:1.12 src/distrib/utils/embedded/conf/rpi.conf:1.13
--- src/distrib/utils/embedded/conf/rpi.conf:1.12	Wed Jan 23 17:20:06 2013
+++ src/distrib/utils/embedded/conf/rpi.conf	Sun Feb  3 04:16:25 2013
@@ -1,4 +1,4 @@
-# $NetBSD: rpi.conf,v 1.12 2013/01/23 22:20:06 skrll Exp $
+# $NetBSD: rpi.conf,v 1.13 2013/02/03 09:16:25 christos Exp $
 # Raspberry Pi customization script used by mkimage
 #
 
@@ -19,37 +19,39 @@ make_fstab() {
 	make_fstab_evbarm
 }
 
+make_label() {
+	make_label_evbarm
+}
+
 customize() {
 	customize_evbarm
-	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
+	cat >> ${mnt}/etc/rc.conf << EOF
 wscons=YES
 EOF
 
-	${sudo} cat > ${mnt}/boot/cmdline.txt << EOF
+}
+
+populate() {
+	cat > ${mnt}/boot/cmdline.txt << EOF
 root=ld0a console=fb
 #fb=1280x1024		# to select a mode, otherwise try EDID 
 #fb=disable		# to disable fb completely
 EOF
-
 	if [ ! -f ${kerneldir}/kernel.img ]; then
 		echo ${PROG}: Missing ${kerneldir}/kernel.img 1>&2
 		exit 1
 	fi
 
 	echo "${bar} installing kernel ${bar}"
-	${sudo} cp ${kerneldir}/kernel.img ${mnt}/boot
+	cp ${kerneldir}/kernel.img ${mnt}/boot
 
 	echo -n "${bar} installing firmware files:"
 	(cd ${mnt}/boot &&
 		for f in ${firmwarefiles}; do
 			echo -n " $f"
-			${sudo} cp ${firmwaredir}/${f} .
+			cp ${firmwaredir}/${f} .
 		done
 	)
 	echo " ${bar}"
 
 }
-
-cleanup() {
-	cleanup_evbarm
-}

Index: src/distrib/utils/embedded/conf/usermode.conf
diff -u src/distrib/utils/embedded/conf/usermode.conf:1.2 src/distrib/utils/embedded/conf/usermode.conf:1.3
--- src/distrib/utils/embedded/conf/usermode.conf:1.2	Sun Jan 13 17:08:43 2013
+++ src/distrib/utils/embedded/conf/usermode.conf	Sun Feb  3 04:16:25 2013
@@ -1,5 +1,7 @@
-# $NetBSD: usermode.conf,v 1.2 2013/01/13 22:08:43 christos Exp $
+# $NetBSD: usermode.conf,v 1.3 2013/02/03 09:16:25 christos Exp $
 # NetBSD/usermode customization script used by mkimage
+
+# XXX: BROKEN, needs to be converted to makefs
 custom=custom
 image=usermode.img
 overhead=8 # in MB
@@ -10,12 +12,12 @@ specialdirs="/kern /proc"
 usermodedirs="/var.cow /etc.cow /root.cow /pkgs"
 
 make_filesystems() {
-	${sudo} newfs /dev/r${vnddev}a
-	${sudo} mount /dev/${vnddev}a ${mnt}
+	newfs /dev/r${vnddev}a
+	mount /dev/${vnddev}a ${mnt}
 }
 
 make_fstab() {
-${sudo} cat > ${mnt}/etc/fstab << EOF
+cat > ${mnt}/etc/fstab << EOF
 # NetBSD/usermode /etc/fstab
 /dev/ld0a       /               ffs     ro              1 1
 /dev/ld1a	/pkgs		ffs	ro		1 2
@@ -37,7 +39,7 @@ EOF
 }
 
 customize() {
-${sudo} cat >> ${mnt}/etc/rc.conf << EOF
+cat >> ${mnt}/etc/rc.conf << EOF
 # make sure we have the right rw filesystem at boot
 critical_filesystems_local="/var.cow /var /etc.cow /etc /root.cow /root"
 
@@ -49,26 +51,26 @@ EOF
 
 echo "${bar} making extra directories ${bar}"
 for d in ${usermodedirs}; do
-	${sudo} mkdir -p ${mnt}/${d}
+	mkdir -p ${mnt}/${d}
 done
 
 echo "${bar} customising /var/tmp ${bar}"
-${sudo} rm -rf ${mnt}/var/tmp
-(cd ${mnt}/var && ${sudo} ln -s /tmp tmp)
+rm -rf ${mnt}/var/tmp
+(cd ${mnt}/var && ln -s /tmp tmp)
 
 # package-related stuff
 (cat ${mnt}/etc/csh.cshrc;echo "setenv PKG_DBDIR /usr/pkg/.dbdir") > ${tmp}
-${sudo} mv ${tmp} ${mnt}/etc/csh.cshrc
+mv ${tmp} ${mnt}/etc/csh.cshrc
 (cat ${mnt}/etc/profile;echo "export PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
-${sudo} mv ${tmp} ${mnt}/etc/profile
+mv ${tmp} ${mnt}/etc/profile
 (echo "PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
-${sudo} mv ${tmp} ${mnt}/etc/mk.conf
-(cd ${mnt}/usr && ${sudo} ln -s /pkgs/usr/pkg pkg)
+mv ${tmp} ${mnt}/etc/mk.conf
+(cd ${mnt}/usr && ln -s /pkgs/usr/pkg pkg)
 
 # last, customisation stage
 if [ -d ${custom} ]; then
 	echo "${bar} user customisations from files in ${custom} ${bar}"
-	(cd ${custom} && ${sudo} pax -rwpe . ${mnt})
+	(cd ${custom} && pax -rwpe . ${mnt})
 fi
 
 df ${mnt}

Reply via email to