Re: git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper
- Reply: Jessica Clarke : "Re: git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper"
- In reply to: Jessica Clarke : "git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 11 Apr 2023 14:14:06 UTC
On 03/10/2022 18:09, Jessica Clarke wrote: > The branch main has been updated by jrtc27: > > URL: https://cgit.FreeBSD.org/src/commit/?id=d577d6178bdeff86dbff0b954659ac5e23c17b2a > > commit d577d6178bdeff86dbff0b954659ac5e23c17b2a > Author: Jessica Clarke <jrtc27@FreeBSD.org> > AuthorDate: 2022-10-03 16:09:16 +0000 > Commit: Jessica Clarke <jrtc27@FreeBSD.org> > CommitDate: 2022-10-03 16:09:16 +0000 > > bsdinstall release: Move code to a new startbsdinstall wrapper > > This separates out the install media-specific environment (creating > bsdinstall_etc) from actually running the installer on a given console. > This will be used by a future change to start the installer on multiple > consoles. > > Reviewed by: brooks, gjb > Differential Revision: https://reviews.freebsd.org/D36803 > --- > release/rc.local | 96 +------------------------------ > tools/build/mk/OptionalObsoleteFiles.inc | 1 + > usr.sbin/bsdinstall/Makefile | 3 + > usr.sbin/bsdinstall/startbsdinstall | 97 ++++++++++++++++++++++++++++++++ > 4 files changed, 102 insertions(+), 95 deletions(-) > > diff --git a/release/rc.local b/release/rc.local > index 9adaea468ae7..943c175ddd52 100755 > --- a/release/rc.local > +++ b/release/rc.local > @@ -1,101 +1,7 @@ > #!/bin/sh > # $FreeBSD$ > > -: ${BSDDIALOG_OK=0} > -: ${BSDDIALOG_CANCEL=1} > -: ${BSDDIALOG_HELP=2} > -: ${BSDDIALOG_EXTRA=3} > -: ${BSDDIALOG_ESC=5} > -: ${BSDDIALOG_ERROR=255} > - > # resolv.conf from DHCP ends up in here, so make sure the directory exists > mkdir /tmp/bsdinstall_etc > > -kbdcontrol -d >/dev/null 2>&1 > -if [ $? -eq 0 ]; then > - # Syscons: use xterm, start interesting things on other VTYs > - TERM=xterm > - > - # Don't send ESC on function-key 62/63 (left/right command key) > - kbdcontrol -f 62 '' > /dev/null 2>&1 > - kbdcontrol -f 63 '' > /dev/null 2>&1 > - > - if [ -z "$EXTERNAL_VTY_STARTED" ]; then > - # Init will clean these processes up if/when the system > - # goes multiuser > - touch /tmp/bsdinstall_log > - tail -f /tmp/bsdinstall_log > /dev/ttyv2 & > - /usr/libexec/getty autologin ttyv3 & > - EXTERNAL_VTY_STARTED=1 > - fi > -else > - # Serial or other console > - echo > - echo "Welcome to FreeBSD!" > - echo > - echo "Please choose the appropriate terminal type for your system." > - echo "Common console types are:" > - echo " ansi Standard ANSI terminal" > - echo " vt100 VT100 or compatible terminal" > - echo " xterm xterm terminal emulator (or compatible)" > - echo > - echo -n "Console type [vt100]: " > - read TERM > - TERM=${TERM:-vt100} > -fi > -export TERM > - > -# Query terminal size; useful for serial lines. > -resizewin -z > - > -if [ -f /etc/installerconfig ]; then > - if bsdinstall script /etc/installerconfig; then > - bsddialog --backtitle "FreeBSD Installer" --title "Complete" --no-cancel --ok-label "Reboot" --pause "Installation of FreeBSD complete! Rebooting in 10 seconds" 10 30 10 > - reboot > - else > - bsddialog --backtitle "FreeBSD Installer" --title "Error" --textbox /tmp/bsdinstall_log 0 0 > - fi > - exit > -fi > - > -bsddialog --backtitle "FreeBSD Installer" --title "Welcome" --extra-button --extra-label "Shell" --ok-label "Install" --cancel-label "Live CD" --yesno "Welcome to FreeBSD! Would you like to begin an installation or use the live CD?" 0 0 > - > -case $? in > -$BSDDIALOG_OK) # Install > - # If not netbooting, have the installer configure the network > - dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null` > - if [ ${dlv:=0} -eq 0 -a ! -f /etc/diskless ]; then > - BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT > - fi > - > - trap true SIGINT # Ignore cntrl-C here > - bsdinstall > - if [ $? -eq 0 ]; then > - bsddialog --backtitle "FreeBSD Installer" --title "Complete" --ok-label "Reboot" --extra-button --extra-label "Shutdown" --cancel-label "Live CD" --yesno "Installation of FreeBSD complete! Would you like to reboot into the installed system now?" 0 0 > - > - case $? in > - $BSDDIALOG_OK) # Reboot > - reboot > - ;; > - $BSDDIALOG_EXTRA) # Shutdown > - shutdown -p now > - ;; > - $BSDDIALOG_CANCEL) # Live CD > - exit 0 > - ;; > - esac > - else > - . /etc/rc.local > - fi > - ;; > -$BSDDIALOG_CANCEL) # Live CD > - exit 0 > - ;; > -$BSDDIALOG_EXTRA) # Shell > - clear > - echo "When finished, type 'exit' to return to the installer." > - /bin/sh > - . /etc/rc.local > - ;; > -esac > - > +/usr/libexec/bsdinstall/startbsdinstall > diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc > index 484089d47203..f0ddd90b784c 100644 > --- a/tools/build/mk/OptionalObsoleteFiles.inc > +++ b/tools/build/mk/OptionalObsoleteFiles.inc > @@ -474,6 +474,7 @@ OLD_FILES+=usr/libexec/bsdinstall/runconsoles > OLD_FILES+=usr/libexec/bsdinstall/script > OLD_FILES+=usr/libexec/bsdinstall/scriptedpart > OLD_FILES+=usr/libexec/bsdinstall/services > +OLD_FILES+=usr/libexec/bsdinstall/startbsdinstall > OLD_FILES+=usr/libexec/bsdinstall/time > OLD_FILES+=usr/libexec/bsdinstall/umount > OLD_FILES+=usr/libexec/bsdinstall/wlanconfig > diff --git a/usr.sbin/bsdinstall/Makefile b/usr.sbin/bsdinstall/Makefile > index d09bef110518..e71cae726536 100644 > --- a/usr.sbin/bsdinstall/Makefile > +++ b/usr.sbin/bsdinstall/Makefile > @@ -10,6 +10,9 @@ GENHDRS= opt_osname.h > SRCS+= ${GENHDRS} > CLEANFILES+= ${GENHDRS} > > +SCRIPTS+= startbsdinstall > +SCRIPTSDIR_startbsdinstall= ${LIBEXECDIR}/bsdinstall > + > opt_osname.h: .PHONY > if ! grep -q "^#define OSNAME \"${OSNAME}\"$"" ${.TARGET}; then \ > echo "#define OSNAME \"${OSNAME}\"" > ${.TARGET}; \ > diff --git a/usr.sbin/bsdinstall/startbsdinstall b/usr.sbin/bsdinstall/startbsdinstall > new file mode 100644 > index 000000000000..3a5a07e85b4d > --- /dev/null > +++ b/usr.sbin/bsdinstall/startbsdinstall > @@ -0,0 +1,97 @@ This commit copy&paste code from scripts/auto to a new file. Why weren't the SPDX, Copyright and License copied and added? I was inactive for a few months. Do we have a new policy to add new files in BASE without legal info, bsd license, etc? https://cgit.freebsd.org/src/tree/usr.sbin/bsdinstall/startbsdinstall > +#!/bin/sh > + > +: ${BSDDIALOG_OK=0} > +: ${BSDDIALOG_CANCEL=1} > +: ${BSDDIALOG_HELP=2} > +: ${BSDDIALOG_EXTRA=3} > +: ${BSDDIALOG_ESC=5} > +: ${BSDDIALOG_ERROR=255} > + > +kbdcontrol -d >/dev/null 2>&1 > +if [ $? -eq 0 ]; then > + # Syscons: use xterm, start interesting things on other VTYs > + TERM=xterm > + > + # Don't send ESC on function-key 62/63 (left/right command key) > + kbdcontrol -f 62 '' > /dev/null 2>&1 > + kbdcontrol -f 63 '' > /dev/null 2>&1 > + > + if [ -z "$EXTERNAL_VTY_STARTED" ]; then > + # Init will clean these processes up if/when the system > + # goes multiuser > + touch /tmp/bsdinstall_log > + tail -f /tmp/bsdinstall_log > /dev/ttyv2 & > + /usr/libexec/getty autologin ttyv3 & > + EXTERNAL_VTY_STARTED=1 > + fi > +else > + # Serial or other console > + echo > + echo "Welcome to FreeBSD!" > + echo > + echo "Please choose the appropriate terminal type for your system." > + echo "Common console types are:" > + echo " ansi Standard ANSI terminal" > + echo " vt100 VT100 or compatible terminal" > + echo " xterm xterm terminal emulator (or compatible)" > + echo > + echo -n "Console type [vt100]: " > + read TERM > + TERM=${TERM:-vt100} > +fi > +export TERM > + > +# Query terminal size; useful for serial lines. > +resizewin -z > + > +if [ -f /etc/installerconfig ]; then > + if bsdinstall script /etc/installerconfig; then > + bsddialog --backtitle "FreeBSD Installer" --title "Complete" --no-cancel --ok-label "Reboot" --pause "Installation of FreeBSD complete! Rebooting in 10 seconds" 10 30 10 > + reboot > + else > + bsddialog --backtitle "FreeBSD Installer" --title "Error" --textbox /tmp/bsdinstall_log 0 0 > + fi > + exit > +fi > + > +bsddialog --backtitle "FreeBSD Installer" --title "Welcome" --extra-button --extra-label "Shell" --ok-label "Install" --cancel-label "Live CD" --yesno "Welcome to FreeBSD! Would you like to begin an installation or use the live CD?" 0 0 > + > +case $? in > +$BSDDIALOG_OK) # Install > + # If not netbooting, have the installer configure the network > + dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null` > + if [ ${dlv:=0} -eq 0 -a ! -f /etc/diskless ]; then > + BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT > + fi > + > + trap true SIGINT # Ignore cntrl-C here > + bsdinstall > + if [ $? -eq 0 ]; then > + bsddialog --backtitle "FreeBSD Installer" --title "Complete" --ok-label "Reboot" --extra-button --extra-label "Shutdown" --cancel-label "Live CD" --yesno "Installation of FreeBSD complete! Would you like to reboot into the installed system now?" 0 0 > + > + case $? in > + $BSDDIALOG_OK) # Reboot > + reboot > + ;; > + $BSDDIALOG_EXTRA) # Shutdown > + shutdown -p now > + ;; > + $BSDDIALOG_CANCEL) # Live CD > + exit 0 > + ;; > + esac > + else > + . "$0" > + fi > + ;; > +$BSDDIALOG_CANCEL) # Live CD > + exit 0 > + ;; > +$BSDDIALOG_EXTRA) # Shell > + clear > + echo "When finished, type 'exit' to return to the installer." > + /bin/sh > + . "$0" > + ;; > +esac > +