Date: Tue, 11 Apr 2023 15:19:00 +0100 From: Jessica Clarke <jrtc27@freebsd.org> To: "Alfonso S. Siciliano" <asiciliano@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper Message-ID: <C099CAD5-D4FC-461B-A1C8-F39D65811570@freebsd.org> In-Reply-To: <6cd86574-0aed-a9ac-150b-598b01924cfd@FreeBSD.org> References: <202210031609.293G9hiu022582@gitrepo.freebsd.org> <6cd86574-0aed-a9ac-150b-598b01924cfd@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11 Apr 2023, at 15:14, Alfonso S. Siciliano <asiciliano@FreeBSD.org> = wrote: >=20 > 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=3Dd577d6178bdeff86dbff0b954659ac5e= 23c17b2a >> 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=3D0} >> -: ${BSDDIALOG_CANCEL=3D1} >> -: ${BSDDIALOG_HELP=3D2} >> -: ${BSDDIALOG_EXTRA=3D3} >> -: ${BSDDIALOG_ESC=3D5} >> -: ${BSDDIALOG_ERROR=3D255} >> - >> # 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=3Dxterm >> - >> - # 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=3D1 >> - 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=3D${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=3D`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null` >> - if [ ${dlv:=3D0} -eq 0 -a ! -f /etc/diskless ]; then >> - BSDINSTALL_CONFIGCURRENT=3Dyes; 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+=3Dusr/libexec/bsdinstall/runconsoles >> OLD_FILES+=3Dusr/libexec/bsdinstall/script >> OLD_FILES+=3Dusr/libexec/bsdinstall/scriptedpart >> OLD_FILES+=3Dusr/libexec/bsdinstall/services >> +OLD_FILES+=3Dusr/libexec/bsdinstall/startbsdinstall >> OLD_FILES+=3Dusr/libexec/bsdinstall/time >> OLD_FILES+=3Dusr/libexec/bsdinstall/umount >> OLD_FILES+=3Dusr/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=3D opt_osname.h >> SRCS+=3D ${GENHDRS} >> CLEANFILES+=3D ${GENHDRS} >> +SCRIPTS+=3D startbsdinstall >> +SCRIPTSDIR_startbsdinstall=3D ${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 @@ >=20 >=20 > This commit copy&paste code from scripts/auto to a new file. Why = weren't the SPDX, Copyright and License copied and added? >=20 > 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 The code had no such info before; I merely moved it (moved / cut+paste, not copy+paste) and lightly adapted it as needed. Adding copyright and license information would presumably be worthwhile but is a separate activity and would require trawling through the history of the code. It probably started life small enough that copyright wasn=E2=80=99t = relevant and then slowly grew to a point where it sort of is (though there=E2=80=99s = nothing hugely interesting here). Jess >> +#!/bin/sh >> + >> +: ${BSDDIALOG_OK=3D0} >> +: ${BSDDIALOG_CANCEL=3D1} >> +: ${BSDDIALOG_HELP=3D2} >> +: ${BSDDIALOG_EXTRA=3D3} >> +: ${BSDDIALOG_ESC=3D5} >> +: ${BSDDIALOG_ERROR=3D255} >> + >> +kbdcontrol -d >/dev/null 2>&1 >> +if [ $? -eq 0 ]; then >> + # Syscons: use xterm, start interesting things on other VTYs >> + TERM=3Dxterm >> + >> + # 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=3D1 >> + 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=3D${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=3D`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null` >> + if [ ${dlv:=3D0} -eq 0 -a ! -f /etc/diskless ]; then >> + BSDINSTALL_CONFIGCURRENT=3Dyes; 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 >> +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C099CAD5-D4FC-461B-A1C8-F39D65811570>