summaryrefslogtreecommitdiff
path: root/distrib/sparc64
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2001-09-18 14:27:33 +0000
committerJason Wright <jason@cvs.openbsd.org>2001-09-18 14:27:33 +0000
commit81930bb2e9838eb45908a9e482c5ca42196d9cdf (patch)
tree6050fbab17630da94495375c3411936f52edfaa6 /distrib/sparc64
parent5efa71bdbc1a1a5b3f6f82657881c68933a7dd0b (diff)
initial cut at building ramdisk... will no doubt need tweaking
Diffstat (limited to 'distrib/sparc64')
-rw-r--r--distrib/sparc64/Makefile5
-rw-r--r--distrib/sparc64/Makefile.inc6
-rw-r--r--distrib/sparc64/install.md232
-rw-r--r--distrib/sparc64/list2sh.awk69
-rw-r--r--distrib/sparc64/miniroot/Makefile.inc4
-rw-r--r--distrib/sparc64/miniroot/dot.profile92
-rw-r--r--distrib/sparc64/miniroot/list56
-rw-r--r--distrib/sparc64/ramdisk/Makefile95
-rw-r--r--distrib/sparc64/ramdisk/Makefile.inc11
-rw-r--r--distrib/sparc64/ramdisk/dot.profile92
-rw-r--r--distrib/sparc64/ramdisk/instbin.conf33
-rw-r--r--distrib/sparc64/ramdisk/list39
-rw-r--r--distrib/sparc64/ramdisk/mtree.conf90
-rw-r--r--distrib/sparc64/runlist.sh13
14 files changed, 837 insertions, 0 deletions
diff --git a/distrib/sparc64/Makefile b/distrib/sparc64/Makefile
new file mode 100644
index 00000000000..a6b8ce1c8e3
--- /dev/null
+++ b/distrib/sparc64/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+SUBDIR+= ramdisk
+
+.include <bsd.subdir.mk>
diff --git a/distrib/sparc64/Makefile.inc b/distrib/sparc64/Makefile.inc
new file mode 100644
index 00000000000..9f8e7b8b719
--- /dev/null
+++ b/distrib/sparc64/Makefile.inc
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile.inc,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+REV= ${OSrev}
+
+BSDSRCDIR?= /usr/src
+SRCSYSDIR?= ${BSDSRCDIR}/sys
diff --git a/distrib/sparc64/install.md b/distrib/sparc64/install.md
new file mode 100644
index 00000000000..a3a7c9c8b99
--- /dev/null
+++ b/distrib/sparc64/install.md
@@ -0,0 +1,232 @@
+# $OpenBSD: install.md,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $NetBSD: install.md,v 1.3.2.5 1996/08/26 15:45:28 gwr Exp $
+#
+#
+# Copyright (c) 1996 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Jason R. Thorpe.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 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.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. 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 REGENTS 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.
+#
+
+#
+# machine dependent section of installation/upgrade script.
+#
+
+# Machine-dependent install sets
+MDSETS="kernel xbin xman xinc xcon"
+ARCH=ARCH
+
+md_set_term() {
+ test -n "$TERM" && return
+ echo -n "Specify terminal type [sun]: "
+ getresp sun
+ TERM=$resp
+ export TERM
+}
+
+md_get_msgbuf() {
+ # Only want to see one boot's worth of info
+ dmesg > /tmp/msgbuf
+ sed -n -f /dev/stdin /tmp/msgbuf <<- OOF
+ /^OpenBSD /h
+ /^OpenBSD /!H
+ \${
+ g
+ p
+ }
+ OOF
+}
+
+md_get_diskdevs() {
+ # return available disk devices
+ md_get_msgbuf | sed -n -e '/^sd[0-9] /{s/ .*//;p;}' \
+ -e '/^wd[0-9] /{s/ .*//;p;}'
+}
+
+md_get_cddevs() {
+ # return available CDROM devices
+ md_get_msgbuf | sed -n -e '/^cd[0-9] /{s/ .*//;p;}'
+}
+
+md_get_partition_range() {
+ # return range of valid partition letters
+ echo [a-p]
+}
+
+md_questions() {
+ :
+}
+
+md_installboot() {
+ local _rawdev _prefix
+
+ if [ -z "$1" ]; then
+ echo No disk device specified, you must run installboot manually.
+ return
+ fi
+ _rawdev=/dev/r${1}c
+
+ # use extracted mdec if it exists (may be newer)
+ if [ -e /mnt/usr/mdec/boot ]; then
+ _prefix=/mnt/usr/mdec
+ elif [ -e /usr/mdec/boot ]; then
+ _prefix=/usr/mdec
+ else
+ echo No boot block prototypes found, you must run installboot manually.
+ return
+ fi
+
+ echo Installing boot block...
+ cp ${_prefix}/boot /mnt/boot
+ sync; sync; sync
+ installboot -v /mnt/boot ${_prefix}/bootxx ${_rawdev}
+}
+
+md_native_fstype() {
+ :
+}
+
+md_native_fsopts() {
+ :
+}
+
+md_checkfordisklabel() {
+ # $1 is the disk to check
+ local rval
+
+ disklabel $1 > /dev/null 2> /tmp/checkfordisklabel
+ if grep "no disk label" /tmp/checkfordisklabel; then
+ rval=1
+ elif grep "disk label corrupted" /tmp/checkfordisklabel; then
+ rval=2
+ else
+ rval=0
+ fi
+
+ rm -f /tmp/checkfordisklabel
+ return $rval
+}
+
+md_prep_disklabel()
+{
+ local _disk=$1
+
+ md_checkfordisklabel $_disk
+ case $? in
+ 0)
+ ;;
+ 1)
+ echo WARNING: Label on disk $_disk has no label. You will be creating a new one.
+ echo
+ ;;
+ 2)
+ echo WARNING: Label on disk $_disk is corrupted. You will be repairing.
+ echo
+ ;;
+ esac
+
+ # display example
+ cat << __EOT
+If you are unsure of how to use multiple partitions properly
+(ie. separating /, /usr, /tmp, /var, /usr/local, and other things)
+just split the space into a root and swap partition for now.
+
+__EOT
+ disklabel -W ${_disk}
+ disklabel -f /tmp/fstab.${_disk} -E ${_disk}
+}
+
+md_welcome_banner() {
+{
+ if [ "$MODE" = install ]; then
+ cat << __EOT
+Welcome to the OpenBSD/sparc64 ${VERSION_MAJOR}.${VERSION_MINOR} installation program.
+
+This program is designed to help you put OpenBSD on your disk in a simple and
+rational way.
+
+__EOT
+
+ else
+ cat << __EOT
+echo Welcome to the OpenBSD/sparc64 ${VERSION} upgrade program.
+
+This program is designed to help you upgrade your OpenBSD system in a
+simple and rational way.
+
+As a reminder, installing the 'etc' binary set is NOT recommended.
+Once the rest of your system has been upgraded, you should manually
+merge any changes to files in the 'etc' set into those files which
+already exist on your system.
+
+__EOT
+ fi
+
+cat << __EOT
+
+As with anything which modifies your disk's contents, this program can
+cause SIGNIFICANT data loss, and you are advised to make sure your
+data is backed up before beginning the installation process.
+
+Default answers are displayed in brackets after the questions. You
+can hit Control-C at any time to quit, but if you do so at a prompt,
+you may have to hit return. Also, quitting in the middle of
+installation may leave your system in an inconsistent state.
+
+__EOT
+} | more
+}
+
+md_not_going_to_install() {
+ cat << __EOT
+
+OK, then. Enter 'halt' at the prompt to halt the machine. Once the
+machine has halted, power-cycle the system to load new boot code.
+
+__EOT
+}
+
+md_congrats() {
+ local what;
+ if [ "$MODE" = install ]; then
+ what=installed
+ else
+ what=upgraded
+ fi
+ cat << __EOT
+
+CONGRATULATIONS! You have successfully $what OpenBSD!
+To boot the installed system, enter halt at the command prompt. Once the
+system has halted, reset the machine and boot from the disk.
+
+__EOT
+}
diff --git a/distrib/sparc64/list2sh.awk b/distrib/sparc64/list2sh.awk
new file mode 100644
index 00000000000..263579a2e41
--- /dev/null
+++ b/distrib/sparc64/list2sh.awk
@@ -0,0 +1,69 @@
+# $OpenBSD: list2sh.awk,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("rm -fr ${TARGDIR}/%s\n", $3);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ for (i = 3; i <= NF; i++) {
+ printf("rm -f ${TARGDIR}/%s\n", $i);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $i);
+ }
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ for (i = 3; i <= NF; i++) {
+ printf("rm -f ${TARGDIR}/%s\n", $i);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $i);
+ }
+ next;
+}
+$1 == "ARGVLINK" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "SRCDIRS" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "CRUNCHSPECIAL" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "COPYDIR" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
+ $3);
+ printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
+ $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo %s\n", $0);
+ sub(/^[ \t]*SPECIAL[ \t]*/, "");
+ printf("(cd ${TARGDIR}; %s)\n", $0);
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/sparc64/miniroot/Makefile.inc b/distrib/sparc64/miniroot/Makefile.inc
new file mode 100644
index 00000000000..cb610f93897
--- /dev/null
+++ b/distrib/sparc64/miniroot/Makefile.inc
@@ -0,0 +1,4 @@
+# $OpenBSD: Makefile.inc,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+RAWLABEL=
+IMAGESIZE?= 12288 # 6MB in 512 byte blocks
diff --git a/distrib/sparc64/miniroot/dot.profile b/distrib/sparc64/miniroot/dot.profile
new file mode 100644
index 00000000000..64e5a962020
--- /dev/null
+++ b/distrib/sparc64/miniroot/dot.profile
@@ -0,0 +1,92 @@
+# $OpenBSD: dot.profile,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $NetBSD: dot.profile,v 1.1 1995/12/18 22:54:43 pk Exp $
+#
+# Copyright (c) 1995 Jason R. Thorpe
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 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.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# 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.
+#
+
+export PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export HISTFILE=/.sh_history
+
+umask 022
+
+set -o emacs # emacs-style command line editing
+
+# XXX
+# the TERM/EDITOR stuff is really well enough parameterized to be moved
+# into install.sub where it could use the routines there and be invoked
+# from the various (semi) MI install and upgrade scripts
+
+# terminals believed to be in termcap, default TERM
+TERMS="sun vt* pcvt* pc3 dumb"
+TERM=sun
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ mount_ffs -o update /dev/rd0a /
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C, status ^T'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? status ^T 9600
+
+ # get the terminal type
+ _forceloop=""
+ while [ "X$_forceloop" = X"" ]; do
+ echo "Supported terminals are: $TERMS"
+ eval `tset -s -m ":?$TERM"`
+ if [ "X$TERM" != X"unknown" ]; then
+ _forceloop="done"
+ fi
+ done
+ export TERM
+
+ # Installing or upgrading?
+ _forceloop=""
+ while [ "X$_forceloop" = X"" ]; do
+ echo -n '(I)nstall, (U)pgrade, or (S)hell? '
+ read _forceloop
+ case "$_forceloop" in
+ i*|I*)
+ /install
+ ;;
+
+ u*|U*)
+ /upgrade
+ ;;
+
+ s*|S*)
+ ;;
+
+ *)
+ _forceloop=""
+ ;;
+ esac
+ done
+fi
diff --git a/distrib/sparc64/miniroot/list b/distrib/sparc64/miniroot/list
new file mode 100644
index 00000000000..5c98c14e368
--- /dev/null
+++ b/distrib/sparc64/miniroot/list
@@ -0,0 +1,56 @@
+# $OpenBSD: list,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $NetBSD: list,v 1.2.4.2 1996/06/26 19:25:00 pk Exp $
+
+# Sparc extra's
+LINK instbin sbin/disklabel
+LINK instbin sbin/dhclient
+
+SYMLINK ../../instbin usr/bin/basename
+SYMLINK ../../instbin usr/bin/cksum usr/bin/sum
+SYMLINK ../../instbin usr/bin/cut
+SYMLINK ../../instbin usr/bin/getopt
+SYMLINK ../../instbin usr/bin/grep usr/bin/egrep usr/bin/fgrep
+SYMLINK ../../instbin usr/bin/netstat
+SYMLINK ../../instbin usr/bin/rsh
+SYMLINK ../../instbin usr/bin/strings
+SYMLINK ../../instbin usr/bin/tset usr/bin/reset
+SYMLINK ../../instbin usr/bin/less usr/bin/more
+SYMLINK ../../instbin usr/sbin/installboot
+SYMLINK ../../instbin usr/sbin/sysctl
+
+SRCDIRS sys/arch/sparc/stand
+
+# crunchgen source directory specials
+#CRUNCHSPECIAL installboot srcdir sys/arch/sparc/stand/installboot
+
+# Minimize use of MFS
+SYMLINK /tmp var/tmp
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+COPY ${DESTDIR}/dev/MAKEDEV.local dev/MAKEDEV.local
+SPECIAL cd dev; sh MAKEDEV all
+#SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec
+COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+SPECIAL rm -f usr/mdec/binstall usr/mdec/installboot
+
+# and a few useful bits of the termcap file (512K and still growing 8-)
+SPECIAL tic -C ${CURDIR}/../../share/termtypes/termtypes.master | sed -n -e 's,/usr/share/lib/tabset,/usr/share/tabset,g' -e 's,/usr/lib/tabset,/usr/share/tabset,g' -e '/^dumb|/,/:[ ]*$/p' -e '/^unknown|/,/:[ ]*$/p' -e '/^sun.*|/,/:[ ]*$/p' -e '/^vt.*|/,/:[ ]*$/p' -e '/^pc3|/,/:[ ]*$/p' -e '/^pcvt.*|/,/:[ ]*$/p' > usr/share/misc/termcap
+
+# copy the kernel
+COPY bsd bsd
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/disktab etc/disktab.shadow
+SYMLINK /tmp/disktab.shadow etc/disktab
+SYMLINK /tmp/fstab.shadow etc/fstab
+SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf
+SYMLINK /tmp/hosts etc/hosts
+
+# and the installation tools
+COPY ${ARCHDIR}/dot.profile .profile
+SPECIAL sed -e '/^#[ ].*$/d' -e "s/^ARCH=ARCH$/ARCH=`arch -s`/" < ${ARCHDIR}/../install.md > install.md
+COPY ${DESTDIR}/usr/mdec/boot boot
+SPECIAL sync; ${DESTDIR}/usr/mdec/binstall -v ffs ${TARGDIR}
diff --git a/distrib/sparc64/ramdisk/Makefile b/distrib/sparc64/ramdisk/Makefile
new file mode 100644
index 00000000000..136b48a829f
--- /dev/null
+++ b/distrib/sparc64/ramdisk/Makefile
@@ -0,0 +1,95 @@
+# $OpenBSD: Makefile,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+BSD_RD= bsd.rd
+IMAGE= mr.fs
+CBIN?= instbin
+LISTS= ${.CURDIR}/list
+UTILS?= ${.CURDIR}/../../miniroot
+
+MOUNT_POINT= /mnt
+MTREE= ${.CURDIR}/mtree.conf
+
+VND?= svnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+VND_CRDEV= /dev/r${VND}c
+PID!= echo $$$$
+
+
+DISKTYPE= rdroot
+NBLKS= 8192
+# minfree, opt, b/i trks, sects, cpg
+NEWFSARGS= -m 0 -o space -c 16 -i 4096
+
+.ifndef DESTDIR
+all ${IMAGE}:
+ @echo setenv DESTDIR before making a ramdisk!
+ @false
+.else
+
+# mix config is not needed.
+all: ${BSD_RD}
+
+${BSD_RD}: ${CBIN} ${IMAGE} bsd rdsetroot
+ cp bsd ${BSD_RD}
+ ${.OBJDIR}/rdsetroot ${BSD_RD} < ${IMAGE}
+
+${IMAGE}: rd_setup do_files rd_teardown
+
+.endif
+
+bsd:
+ cd ${TOP}/../../sys/arch/sparc64/conf && config RAMDISK
+ cd ${TOP}/../../sys/arch/sparc64/compile/RAMDISK && \
+ make clean && make depend && make
+ cp ${TOP}/../../sys/arch/sparc64/compile/RAMDISK/bsd bsd
+
+rd_setup:
+ dd if=/dev/zero of=${IMAGE} bs=512 count=${NBLKS}
+ vnconfig -v -c ${VND} ${IMAGE}
+ disklabel -w -r ${VND} ${DISKTYPE}
+ newfs ${NEWFSARGS} ${VND_RDEV}
+ fsck ${VND_RDEV}
+ mount ${VND_DEV} ${MOUNT_POINT}
+
+rd_teardown:
+ @df -i ${MOUNT_POINT}
+ -umount ${MOUNT_POINT}
+ -vnconfig -u ${VND}
+
+rdsetroot: ${TOP}/common/rdsetroot.c
+ ${HOSTCC} -DDEBUG -o rdsetroot ${TOP}/common/rdsetroot.c
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND}
+
+.PRECIOUS: ${IMAGE}
+
+install:
+ cp ${BSD_RD} cd${REV}.fs ${DESTDIR}/snapshot/
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CBIN}.conf
+ crunchgen -E -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib ${.ALLSRC}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+do_files:
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ REV=${REV} TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh -d ${LISTS}
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache \
+ *.o *.lo *.c bsd ${BSD_RD} \
+ rdsetroot
+
+beforeinstall:
+ cp ${BSD.RD} cd${REV}.fs ${DESTDIR}/snapshot
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/sparc64/ramdisk/Makefile.inc b/distrib/sparc64/ramdisk/Makefile.inc
new file mode 100644
index 00000000000..7b5b0b5b19a
--- /dev/null
+++ b/distrib/sparc64/ramdisk/Makefile.inc
@@ -0,0 +1,11 @@
+# $OpenBSD: Makefile.inc,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $OpenBSD: Makefile.inc,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+IMAGESIZE?= 5352
+GZIP?= gzip
+GZIPFLAGS?= -9v
+GZIPEXT?= .gz
+MAKEFLOPPY= 1
+RAWLABEL=
+BOOT= ${DESTDIR}/usr/mdec/boot
+INSTALLBOOT= ${DESTDIR}/usr/mdec/installboot
diff --git a/distrib/sparc64/ramdisk/dot.profile b/distrib/sparc64/ramdisk/dot.profile
new file mode 100644
index 00000000000..64e5a962020
--- /dev/null
+++ b/distrib/sparc64/ramdisk/dot.profile
@@ -0,0 +1,92 @@
+# $OpenBSD: dot.profile,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $NetBSD: dot.profile,v 1.1 1995/12/18 22:54:43 pk Exp $
+#
+# Copyright (c) 1995 Jason R. Thorpe
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 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.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# 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.
+#
+
+export PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export HISTFILE=/.sh_history
+
+umask 022
+
+set -o emacs # emacs-style command line editing
+
+# XXX
+# the TERM/EDITOR stuff is really well enough parameterized to be moved
+# into install.sub where it could use the routines there and be invoked
+# from the various (semi) MI install and upgrade scripts
+
+# terminals believed to be in termcap, default TERM
+TERMS="sun vt* pcvt* pc3 dumb"
+TERM=sun
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ mount_ffs -o update /dev/rd0a /
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C, status ^T'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? status ^T 9600
+
+ # get the terminal type
+ _forceloop=""
+ while [ "X$_forceloop" = X"" ]; do
+ echo "Supported terminals are: $TERMS"
+ eval `tset -s -m ":?$TERM"`
+ if [ "X$TERM" != X"unknown" ]; then
+ _forceloop="done"
+ fi
+ done
+ export TERM
+
+ # Installing or upgrading?
+ _forceloop=""
+ while [ "X$_forceloop" = X"" ]; do
+ echo -n '(I)nstall, (U)pgrade, or (S)hell? '
+ read _forceloop
+ case "$_forceloop" in
+ i*|I*)
+ /install
+ ;;
+
+ u*|U*)
+ /upgrade
+ ;;
+
+ s*|S*)
+ ;;
+
+ *)
+ _forceloop=""
+ ;;
+ esac
+ done
+fi
diff --git a/distrib/sparc64/ramdisk/instbin.conf b/distrib/sparc64/ramdisk/instbin.conf
new file mode 100644
index 00000000000..b63322cbc60
--- /dev/null
+++ b/distrib/sparc64/ramdisk/instbin.conf
@@ -0,0 +1,33 @@
+# $OpenBSD: instbin.conf,v 1.1 2001/09/18 14:27:32 jason Exp $
+#
+# instbin.conf - unified binary for the inst/upgr floppies
+#
+
+srcdirs distrib/special
+srcdirs usr.bin bin sbin usr.sbin gnu/usr.bin
+
+progs dd mount_cd9660 df dhclient mount sync restore newfs_msdos
+progs stty ln disklabel pax ping cat ifconfig dmesg ls
+progs less mount_nfs grep umount mount_msdos rsh fsck
+progs scsi mknod route ftp mount_ffs reboot ed
+progs cp gzip chmod fsck_ffs sort init newfs
+progs tip rm mt mkdir sed ksh sleep
+progs mv expr test hostname
+progs mg
+
+ln mt eject
+ln chmod chgrp
+ln chmod chown
+ln pax tar
+ln pax cpio
+ln less more
+ln grep fgrep
+ln grep egrep
+ln reboot halt
+ln gzip gunzip
+ln gzip gzcat
+ln ksh sh
+ln ksh -sh
+ln test [
+
+libs -ledit -lutil -lcurses -ll -lm -lkvm -lz -lkrb -ldes
diff --git a/distrib/sparc64/ramdisk/list b/distrib/sparc64/ramdisk/list
new file mode 100644
index 00000000000..fbc0ce4044d
--- /dev/null
+++ b/distrib/sparc64/ramdisk/list
@@ -0,0 +1,39 @@
+# $OpenBSD: list,v 1.1 2001/09/18 14:27:32 jason Exp $
+# $NetBSD: list,v 1.2.4.2 1996/06/26 19:25:00 pk Exp $
+
+# Sparc extra's
+LINK instbin sbin/disklabel
+
+SYMLINK ../../instbin usr/bin/basename
+SYMLINK ../../instbin usr/bin/grep usr/bin/egrep usr/bin/fgrep
+SYMLINK ../../instbin usr/bin/rsh
+SYMLINK ../../instbin usr/bin/tset usr/bin/reset
+SYMLINK ../../instbin usr/bin/less usr/bin/more
+SYMLINK ../../instbin usr/sbin/installboot
+
+SRCDIRS sys/arch/sparc/stand
+
+# Minimize use of MFS
+SYMLINK /tmp var/tmp
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV ramdisk
+
+# we need the contents of /usr/mdec (but not boot or binstall)
+COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+SPECIAL rm -f usr/mdec/binstall usr/mdec/installboot
+
+# and a few useful bits of the termcap file (512K and still growing 8-)
+SPECIAL tic -C ${CURDIR}/../../../share/termtypes/termtypes.master | sed -n -e 's,/usr/share/lib/tabset,/usr/share/tabset,g' -e 's,/usr/lib/tabset,/usr/share/tabset,g' -e '/^dumb|/,/:[ ]*$/p' -e '/^unknown|/,/:[ ]*$/p' -e '/^sun.*|/,/:[ ]*$/p' -e '/^vt.*|/,/:[ ]*$/p' -e '/^pc3|/,/:[ ]*$/p' -e '/^pcvt.*|/,/:[ ]*$/p' > usr/share/misc/termcap
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/disktab etc/disktab.shadow
+SYMLINK /tmp/disktab.shadow etc/disktab
+SYMLINK /tmp/fstab.shadow etc/fstab
+SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf
+SYMLINK /tmp/hosts etc/hosts
+
+# and the installation tools
+COPY ${ARCHDIR}/../ramdisk/dot.profile .profile
+SPECIAL sed -e '/^#[ ].*$/d' -e "s/^ARCH=ARCH$/ARCH=`arch -s`/" < ${ARCHDIR}/../install.md > install.md
diff --git a/distrib/sparc64/ramdisk/mtree.conf b/distrib/sparc64/ramdisk/mtree.conf
new file mode 100644
index 00000000000..a56bed09a51
--- /dev/null
+++ b/distrib/sparc64/ramdisk/mtree.conf
@@ -0,0 +1,90 @@
+# $OpenBSD: mtree.conf,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp mode=01777
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
+
+# ./var
+var
+
+# ./var/tmp
+tmp mode=0177
+
+# ./var/tmp
+..
+
+# ./var/db
+db
+# ./var/db
+..
+
+# ./var
+..
diff --git a/distrib/sparc64/runlist.sh b/distrib/sparc64/runlist.sh
new file mode 100644
index 00000000000..8c5cf4f39a2
--- /dev/null
+++ b/distrib/sparc64/runlist.sh
@@ -0,0 +1,13 @@
+# $OpenBSD: runlist.sh,v 1.1 2001/09/18 14:27:32 jason Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}