On install CDs: make ^C and ^Z work (mostly) as they used to do on

crunched/ramdisk install media again.
Fixes the remaining parts of PR 44738.
This commit is contained in:
martin 2011-04-17 12:18:19 +00:00
parent 518b4814dd
commit dd3f377a8d
7 changed files with 134 additions and 33 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile.cdrom,v 1.3 2011/01/29 01:54:33 jym Exp $
# $NetBSD: Makefile.cdrom,v 1.4 2011/04/17 12:18:19 martin Exp $
.include <bsd.own.mk>
@ -34,6 +34,7 @@ CDRUNTIME+= ./usr/bin/progress
CDRUNTIME+= ./usr/bin/sed
CDRUNTIME+= ./usr/bin/sort
CDRUNTIME+= ./usr/bin/tip
CDRUNTIME+= ./usr/bin/tput
CDRUNTIME+= ./usr/bin/vmstat
CDRUNTIME+= ./usr/lib/libbz2.so*
CDRUNTIME+= ./usr/lib/libc.so*

View File

@ -1,5 +1,5 @@
#! /bin/sh
# $NetBSD: install.sh,v 1.1 2011/01/18 00:16:13 jym Exp $
#! /bin/sh -m
# $NetBSD: install.sh,v 1.2 2011/04/17 12:18:20 martin Exp $
#
# -
# Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -34,17 +34,23 @@
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
export PATH
termfile=/tmp/sysinst.term
# Check if we are on a framebuffer or on serial console and default
# the terminal type accordingly.
# There is no /var/db/dev.db, so sysctl might not map the devicename properly;
# ttyE0 is 90,0 -> 0x5a00
case $(sysctl -nx kern.consdev) in
002f000000000000)
TERM=wsvt25
;;
TERM=wsvt25
;;
*)
TERM=vt220
;;
if [ -r ${termfile} ]; then
. ${termfile}
else
TERM=vt220
fi
;;
esac
export TERM
@ -54,6 +60,8 @@ BLOCKSIZE=1k
export BLOCKSIZE
EDITOR=ed
export EDITOR
SHELL=/bin/sh
export SHELL
umask 022
@ -78,8 +86,30 @@ EOM
fi
# run the installation or upgrade script.
/sysinst || {
echo "Oops, something went wrong - we will try again"; exit; }
cd /
cmd=./sysinst
while [ -n "${cmd}" ]
do
${cmd}
if [ $? = 4 ]; then
echo "Oops, something went wrong - we will try again"
exit
else
if [ -n "$(jobs)" ]; then
tput clear
echo "You have stopped sysinst, return to it by" \
"typing 'exit' or ^D."
${SHELL} -i
cmd="fg"
else
cmd=""
fi
fi
done
# remember terminal type, now that we know it for sure
echo "TERM=${TERM}" > ${termfile}
echo
echo "To return to the installer, quit this shell by typing 'exit' or ^D."
exec /bin/sh
exec ${SHELL}

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile.cdrom,v 1.23 2011/01/27 15:34:38 gdt Exp $
# $NetBSD: Makefile.cdrom,v 1.24 2011/04/17 12:18:20 martin Exp $
.include <bsd.own.mk>
@ -34,6 +34,7 @@ CDRUNTIME+= ./usr/bin/progress
CDRUNTIME+= ./usr/bin/sed
CDRUNTIME+= ./usr/bin/sort
CDRUNTIME+= ./usr/bin/tip
CDRUNTIME+= ./usr/bin/tput
CDRUNTIME+= ./usr/bin/vmstat
CDRUNTIME+= ./usr/lib/libbz2.so*
CDRUNTIME+= ./usr/lib/libc.so*

View File

@ -1,5 +1,5 @@
#! /bin/sh
# $NetBSD: install.sh,v 1.1 2010/04/19 04:41:36 martin Exp $
#! /bin/sh -m
# $NetBSD: install.sh,v 1.2 2011/04/17 12:18:20 martin Exp $
#
# -
# Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -34,17 +34,23 @@
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
export PATH
termfile=/tmp/sysinst.term
# Check if we are on a framebuffer or on serial console and default
# the terminal type accordingly.
# There is no /var/db/dev.db, so sysctl might not map the devicename properly;
# ttyE0 is 90,0 -> 0x5a00
case $(sysctl -nx kern.consdev) in
002f000000000000)
TERM=wsvt25
;;
TERM=wsvt25
;;
*)
TERM=vt220
;;
if [ -r ${termfile} ]; then
. ${termfile}
else
TERM=vt220
fi
;;
esac
export TERM
@ -54,6 +60,8 @@ BLOCKSIZE=1k
export BLOCKSIZE
EDITOR=ed
export EDITOR
SHELL=/bin/sh
export SHELL
umask 022
@ -78,8 +86,30 @@ EOM
fi
# run the installation or upgrade script.
/sysinst || {
echo "Oops, something went wrong - we will try again"; exit; }
cd /
cmd=./sysinst
while [ -n "${cmd}" ]
do
${cmd}
if [ $? = 4 ]; then
echo "Oops, something went wrong - we will try again"
exit
else
if [ -n "$(jobs)" ]; then
tput clear
echo "You have stopped sysinst, return to it by" \
"typing 'exit' or ^D."
${SHELL} -i
cmd="fg"
else
cmd=""
fi
fi
done
# remember terminal type, now that we know it for sure
echo "TERM=${TERM}" > ${termfile}
echo
echo "To return to the installer, quit this shell by typing 'exit' or ^D."
exec /bin/sh
exec ${SHELL}

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.10 2011/03/20 09:04:53 martin Exp $
# $NetBSD: Makefile,v 1.11 2011/04/17 12:18:20 martin Exp $
CDBASE= sparc64cd # gives ${CDBASE}.iso
CDRELEASE= true # include $RELEASEDIR/$MACHINE
@ -35,6 +35,7 @@ CDRUNTIME+= ./usr/bin/progress
CDRUNTIME+= ./usr/bin/sed
CDRUNTIME+= ./usr/bin/sort
CDRUNTIME+= ./usr/bin/tip
CDRUNTIME+= ./usr/bin/tput
CDRUNTIME+= ./usr/bin/vmstat
CDRUNTIME+= ./usr/lib/libbz2.so*
CDRUNTIME+= ./usr/lib/libc.so*

View File

@ -1,5 +1,5 @@
#! /bin/sh
# $NetBSD: install.sh,v 1.1 2010/04/18 12:58:57 martin Exp $
#! /bin/sh -m
# $NetBSD: install.sh,v 1.2 2011/04/17 12:18:20 martin Exp $
#
# -
# Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -34,17 +34,23 @@
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
export PATH
termfile=/tmp/sysinst.term
# Check if we are on a framebuffer or on serial console and default
# the terminal type accordingly.
# There is no /var/db/dev.db, so sysctl might not map the devicename properly;
# ttyE0 is 90,0 -> 0x5a00
case $(sysctl -nx kern.consdev) in
0000000000005a0*)
TERM=wsvt25
;;
TERM=wsvt25
;;
*)
TERM=vt220
;;
if [ -r ${termfile} ]; then
. ${termfile}
else
TERM=vt220
fi
;;
esac
export TERM
@ -54,6 +60,8 @@ BLOCKSIZE=1k
export BLOCKSIZE
EDITOR=ed
export EDITOR
SHELL=/bin/sh
export SHELL
umask 022
@ -78,8 +86,30 @@ EOM
fi
# run the installation or upgrade script.
/sysinst || {
echo "Oops, something went wrong - we will try again"; exit; }
cd /
cmd=./sysinst
while [ -n "${cmd}" ]
do
${cmd}
if [ $? = 4 ]; then
echo "Oops, something went wrong - we will try again"
exit
else
if [ -n "$(jobs)" ]; then
tput clear
echo "You have stopped sysinst, return to it by" \
"typing 'exit' or ^D."
${SHELL} -i
cmd="fg"
else
cmd=""
fi
fi
done
# remember terminal type, now that we know it for sure
echo "TERM=${TERM}" > ${termfile}
echo
echo "To return to the installer, quit this shell by typing 'exit' or ^D."
exec /bin/sh
exec ${SHELL}

View File

@ -1,4 +1,4 @@
# $NetBSD: dot.profile,v 1.5 2010/03/13 14:05:39 martin Exp $
# $NetBSD: dot.profile,v 1.6 2011/04/17 12:18:20 martin Exp $
#
# Copyright (c) 1997 Perry E. Metzger
# Copyright (c) 1994 Christopher G. Demetriou
@ -56,6 +56,8 @@ BLOCKSIZE=1k
export BLOCKSIZE
EDITOR=ed
export EDITOR
SHELL=/bin/sh
export SHELL
umask 022
@ -96,6 +98,12 @@ EOM
mount -t ffs -u /kern/rootdev /
# run the installation or upgrade script.
sysinst || {
echo "Oops, something went wrong - we will try again"; exit; }
sysinst
if [ $? = 4 ]; then
echo "Oops, something went wrong - we will try again"
exit
fi
echo
echo "To return to the installer, quit this shell by typing 'exit'" \
"or ^D."
fi