Re: git: d577d6178bde - main - bsdinstall release: Move code to a new startbsdinstall wrapper
Date: Tue, 11 Apr 2023 14:19:00 UTC
On 11 Apr 2023, at 15:14, Alfonso S. Siciliano <asiciliano@FreeBSD.org> wrote:
>
> 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
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’t relevant and
then slowly grew to a point where it sort of is (though there’s nothing
hugely interesting here).
Jess
>> +#!/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
>> +