From nobody Mon Oct 03 16:09:43 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Mh5Pz2t0hz4d5k6; Mon, 3 Oct 2022 16:09:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Mh5Pz2P50z3KpM; Mon, 3 Oct 2022 16:09:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1664813383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2jY3jMFkeRkqXWK9Hiv5L4p3difL0e+DOve1yMKtlzM=; b=ax6vAhtCk9dtvROEGh4NZkPG0PSoOylV6Mqq7L+Nk5KEhEDsk1V/3T7JSl3LqLVOjMNnHP 4e3X8FRcR9pjS6lwF2tjERBEcsGRuHc3bdc/899gc+tu/6CHpptODEVPLmUvbgA53a4aXd uUHXPcQfPn6Uff6e0piepN4xp8ffwUBF2QbD991zr3+zGy1T3L6+i0O77X6WqsrKWsiuRn xrYoXLQJH0Ijj10qV+usV7kyT47G3G7dlS971o73hXGgRL6ylHEdQRcYz0pmKDh6AhGDgc uDUBPvC8kA6qXvl2X7TEOFMzXDI8v/pYUftpnOXR87hXmjvwl6AzUVcm4ZURvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Mh5Pz1VSvzG0s; Mon, 3 Oct 2022 16:09:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 293G9hLp022586; Mon, 3 Oct 2022 16:09:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 293G9hiu022582; Mon, 3 Oct 2022 16:09:43 GMT (envelope-from git) Date: Mon, 3 Oct 2022 16:09:43 GMT Message-Id: <202210031609.293G9hiu022582@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d577d6178bdeff86dbff0b954659ac5e23c17b2a Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1664813383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2jY3jMFkeRkqXWK9Hiv5L4p3difL0e+DOve1yMKtlzM=; b=nZBztwTPT+GCLHa6BbGfMds1FmI5bLFCBpbSQwq6ckeEUMAwqWEC244E4qTTQJMnmIAAOC CTiC306AkZtiTHGtU4MIVrc7ZsBFQAj9TmtlVAeXinhOWJfJUECToxHEXps1czi6f0cD1k MPmKbV3TiHqtQqZ0rnqkfi5XCVPf+aRRtpFDqmOvnUqebr0YGKcD0iHKXBnfMYd8Z7Rs52 1jAPINaN1F2NBgcM/NjHuzPefc97paZwI1t3jXB0Di4wT9aG2YjUYtnGuUlKHRFLEJ1H0A xT12nHxtQiqIMlj8CRmyW94qY4KDoPPIFo4B8PUiyJ6T71oLKjmj+4JrILrnNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1664813383; a=rsa-sha256; cv=none; b=X+ztqnKLwgeXJ02+vWwQT92IyaNYKgIOqBsv06r5JIAFs9iHiQ/LjZkfrLixlbTi5aVrPx hfT9ZKWLPhRlmpMna+eeE8j2JAYm5sGRRlY9SRuMgKsHlICDW8cyOU/qAYArXh3XfMMQzq iXXUnOiU+ePkJILr+2NzsB7cYRUGKccp1z0dghPkZ+G6+bzw9bl4HGih1EVqmz2r7VJsD9 xfjQqtC2RCc9v75vrieRIvIg3BmCsDAZQg+pw/DHKHoCGl/V+HlwByoZ/Q1+6r1r1WL0ug YcF1LAQAL9aLPlCnrS8P0MRfn4WN3/boaPN1REor+i7BMv5k+Kc7OSeV5cnvoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=d577d6178bdeff86dbff0b954659ac5e23c17b2a commit d577d6178bdeff86dbff0b954659ac5e23c17b2a Author: Jessica Clarke AuthorDate: 2022-10-03 16:09:16 +0000 Commit: Jessica Clarke 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 @@ +#!/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 +