Date: Sat, 3 Feb 2024 01:27:58 +0000 From: Jessica Clarke <jrtc27@freebsd.org> To: Brad Davis <brd@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: 009d3f66cb5f - main - bsdinstall: separate out dist selection in prep for pkgbase support Message-ID: <B45A70E6-820C-46C4-968D-67916CFC0B14@freebsd.org> In-Reply-To: <1D1F0A7A-C735-4D6F-B333-39920E84CD5D@freebsd.org> References: <202401312205.40VM5dQS018685@gitrepo.freebsd.org> <1D1F0A7A-C735-4D6F-B333-39920E84CD5D@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 31 Jan 2024, at 22:15, Jessica Clarke <jrtc27@FreeBSD.org> wrote: > On 31 Jan 2024, at 22:05, Brad Davis <brd@FreeBSD.org> wrote: >>=20 >> The branch main has been updated by brd: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D009d3f66cb5f0cf3f1d353f311d3a687= 8b2a534e >>=20 >> commit 009d3f66cb5f0cf3f1d353f311d3a6878b2a534e >> Author: Brad Davis <brd@FreeBSD.org> >> AuthorDate: 2024-01-26 17:46:46 +0000 >> Commit: Brad Davis <brd@FreeBSD.org> >> CommitDate: 2024-01-31 22:05:27 +0000 >>=20 >> bsdinstall: separate out dist selection in prep for pkgbase support >>=20 >> No functional change intended. >>=20 >> Approved by: asiciliano >> Sponsored by: Rubicon Communications, LLC ("Netgate") >> Differential Revision: https://reviews.freebsd.org/D43621 >> --- >> usr.sbin/bsdinstall/scripts/auto | 40 ++++-------------- >> usr.sbin/bsdinstall/scripts/selectdists | 73 = +++++++++++++++++++++++++++++++++ >> usr.sbin/bsdinstall/startbsdinstall | 1 + >> 3 files changed, 82 insertions(+), 32 deletions(-) >>=20 >> diff --git a/usr.sbin/bsdinstall/scripts/auto = b/usr.sbin/bsdinstall/scripts/auto >> index 9f4b5b52fe5d..c651d654d62e 100755 >> --- a/usr.sbin/bsdinstall/scripts/auto >> +++ b/usr.sbin/bsdinstall/scripts/auto >> @@ -153,36 +153,10 @@ trap true SIGINT # This section is optional >> trap error SIGINT # Catch cntrl-C here >> if [ -z "$BSDINSTALL_SKIP_HOSTNAME" ]; then bsdinstall hostname || = error "Set hostname failed"; fi >>=20 >> -export DISTRIBUTIONS=3D"${DISTRIBUTIONS:-base.txz kernel.txz}" >> -if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then >> - DISTMENU=3D`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print = $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` >> - DISTMENU=3D"$(echo ${DISTMENU} | sed -E 's/\.txz//g')" >> - >> - if [ -n "$DISTMENU" ]; then >> - exec 5>&1 >> - EXTRA_DISTS=3D$( eval bsddialog \ >> - --backtitle \"$OSNAME Installer\" \ >> - --title \"Distribution Select\" --nocancel --separate-output \ >> - --checklist \"Choose optional system components to install:\" \ >> - 0 0 0 $DISTMENU \ >> - 2>&1 1>&5 ) >> - for dist in $EXTRA_DISTS; do >> - export DISTRIBUTIONS=3D"$DISTRIBUTIONS $dist.txz" >> - done >> - fi >> -fi >> - >> -FETCH_DISTRIBUTIONS=3D"" >> -for dist in $DISTRIBUTIONS; do >> - if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then >> - FETCH_DISTRIBUTIONS=3D"$FETCH_DISTRIBUTIONS $dist" >> - fi >> -done >> - >> -if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; = then >> - bsddialog --backtitle "$OSNAME Installer" --title "Network = Installation" --msgbox "Some installation files were not found on the = boot volume. The next few screens will allow you to configure networking = so that they can be downloaded from the Internet." 0 0 >> - bsdinstall netconfig || error >> - NETCONFIG_DONE=3Dyes >> +if [ -n "$BSDINSTALL_USE_DISTRIBUTIONS" ]; then >> + exec 5>&1 >> + export DISTRIBUTIONS=3D$( `dirname $0`/selectdists 2>&1 1>&5 ) >> + exec 5>&- >> fi >>=20 >> rm -f $PATH_FSTAB >> @@ -347,8 +321,10 @@ if [ -n "$FETCH_DISTRIBUTIONS" ]; then >>=20 >> [ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote = distributions" >> fi >> -bsdinstall checksum || error "Distribution checksum failed" >> -bsdinstall distextract || error "Distribution extract failed" >> +if [ -n "$BSDINSTALL_USE_DISTRIBUTIONS" ]; then >> + bsdinstall checksum || error "Distribution checksum failed" >> + bsdinstall distextract || error "Distribution extract failed" >> +fi >>=20 >> # Set up boot loader >> bsdinstall bootconfig || error "Failed to configure bootloader" >> diff --git a/usr.sbin/bsdinstall/scripts/selectdists = b/usr.sbin/bsdinstall/scripts/selectdists >> new file mode 100644 >> index 000000000000..b548e82a95f8 >> --- /dev/null >> +++ b/usr.sbin/bsdinstall/scripts/selectdists >> @@ -0,0 +1,73 @@ >> +#!/bin/sh >> +#- >> +# Copyright (c) 2011 Nathan Whitehorn >> +# Copyright (c) 2013-2018 Devin Teske >> +# All rights reserved. >> +# >> +# Redistribution and use in source and binary forms, with or without >> +# modification, are permitted provided that the following conditions >> +# are met: >> +# 1. Redistributions of source code must retain the above copyright >> +# notice, this list of conditions and the following disclaimer. >> +# 2. Redistributions in binary form must reproduce the above = copyright >> +# notice, this list of conditions and the following disclaimer in = the >> +# documentation and/or other materials provided with the = distribution. >> +# >> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' = AND >> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE >> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE >> +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE = LIABLE >> +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >> +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS >> +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >> +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >> +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY >> +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >> +# SUCH DAMAGE. >> +# >> +# >> +############################################################ = INCLUDES >> + >> +BSDCFG_SHARE=3D"/usr/share/bsdconfig" >> +. $BSDCFG_SHARE/common.subr || exit 1 >> + >> +############################################################ = CONFIGURATION >> + >> +# >> +# Default distributions >> +# >> +DISTRIBUTIONS=3D"${DISTRIBUTIONS:-base.txz kernel.txz}" >> + >> +############################################################ MAIN >> + >> +if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then >> + DISTMENU=3D`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print = $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` >> + DISTMENU=3D"$(echo ${DISTMENU} | sed -E 's/\.txz//g')" >> + >> + if [ -n "$DISTMENU" ]; then >> + EXTRA_DISTS=3D$( eval bsddialog \ >> + --backtitle \"$OSNAME Installer\" \ >> + --title \"Distribution Select\" --nocancel --separate-output \ >> + --checklist \"Choose optional system components to install:\" \ >> + 0 0 0 $DISTMENU \ >> + 2>&1 >&3 ) >> + for dist in $EXTRA_DISTS; do >> + DISTRIBUTIONS=3D"$DISTRIBUTIONS $dist.txz" >> + done >> + fi >> +fi >> + >> +FETCH_DISTRIBUTIONS=3D"" >> +for dist in $DISTRIBUTIONS; do >> + if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then >> + FETCH_DISTRIBUTIONS=3D"$FETCH_DISTRIBUTIONS $dist" >> + fi >> +done >> + >> +if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; = then >> + bsddialog --backtitle "$OSNAME Installer" --title "Network = Installation" --msgbox "Some installation files were not found on the = boot volume. The next few screens will allow you to configure networking = so that they can be downloaded from the Internet." 0 0 >> + bsdinstall netconfig || error >> + NETCONFIG_DONE=3Dyes >> +fi >> + >> +echo $DISTRIBUTIONS >&2 >> diff --git a/usr.sbin/bsdinstall/startbsdinstall = b/usr.sbin/bsdinstall/startbsdinstall >> index 63239c969ac6..8d9fb981c11d 100644 >> --- a/usr.sbin/bsdinstall/startbsdinstall >> +++ b/usr.sbin/bsdinstall/startbsdinstall >> @@ -6,6 +6,7 @@ >> : ${BSDDIALOG_EXTRA=3D3} >> : ${BSDDIALOG_ESC=3D5} >> : ${BSDDIALOG_ERROR=3D255} >> +export BSDINSTALL_USE_DISTRIBUTIONS=3Dy >=20 > I said it in the review and I=E2=80=99ll say it again here since you = decided to > just ignore me: this does not belong here. Please remove it and fix = the > default in selectdists. Firstly, ping on this. I still object to the approach taken here. Secondly, this commit was not at all tested. You do not install the new selectdists script, and so the installer falls over (in a rather cryptic way*). I am extremely unimpressed at ignoring reviewer comments and completely breaking the installer, and thus am immediately reverting this commit. It probably works if you install the script, but it=E2=80=99s your job to test that, not mine, so when you have a patch = that actually works please re-seek review and actually engage with the comments. Jess * The checksums script is fed garbage for DISTRIBUTIONS and gives: Error while extracting /usr/libexec/bsdinstall/auto:: Failed to open '/usr/freebsd-dist//usr/libexec/bsdinstall/auto:' since it=E2=80=99s interpreting the shell error message from auto of: /usr/libexec/bsdinstall/auto: /usr/libexec/bsdinstall/selectdists: = not found as a space-separated list of distributions.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B45A70E6-820C-46C4-968D-67916CFC0B14>