From nobody Wed Jan 31 22:05:39 2024 X-Original-To: dev-commits-src-all@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 4TQGLr1lmGz58NN0; Wed, 31 Jan 2024 22:05:40 +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 4TQGLr1GcLz3wxD; Wed, 31 Jan 2024 22:05:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706738740; 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=KSYkjl4qHD3vJ2NPlYlemtbh7/AypxTOhODRYvtCIIs=; b=TKHHq5k/4rrn1DlfJe5uwyxQXonxHZAeZvCR0evcocO1UouPHwmjv843UoHKs6JVMMEZLl S8TD5+wCZrvrL0uzqY355MrCffoJpU3VyK1QGSRgR63Rqln3dCtibLlkCwCZzfEwgxyHk+ buIT22fA06CSfzNGfTY4knWIjxJJSZxo8Ei470NU2dqaw9LE3bTiOVrji0hKo0j/MKjORT +vIYunmp+MK09VOTRhIgNFvBuCeQMojtlsLFDXtI1+0HwnXDXBWwr/OU0dzCa3azssaHy/ 7NvuGPMPpP0J1O1vY3U0nFowTMB7futUUOpd1txGAiiK4kPnSlMUSAoD3i9/bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706738740; 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=KSYkjl4qHD3vJ2NPlYlemtbh7/AypxTOhODRYvtCIIs=; b=cN0HYwKZTdf/6APtSmylJfhKcs0t8LljyeeYuLGQaf+Oe/e0S7qNTP0BVWPXMGdqhCF0Nu HGZYnO1Gy2VxQFt+FJERUEzwOYyp3RKt2NR9xD+vtEB5QPt/xz63rrsEBtbTKk9obxyCwG aNCV+0kp1JPmppkM06OlZM6Nr5IEBefVtxIdMbWq5RCxhHMwnao8JyiBCmrNpnH8r1xFdb FIa1AGJns9TlZ6MdYew3ngnKk6DvQQIZaUPaJ0NMtOik5cOwps5eoPJKXjKC/Acho2mygz yPSJFjSaL3iT8A73DB/1mirTi8HjhEYvsZStkyD1JSzn+GZdHTaoZ7jc0Zoy4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1706738740; a=rsa-sha256; cv=none; b=sQy5BJkXOBXhuDHFjB1c1pmz0+9hhIf1SB7JyeCo2FwGK2iyxbktyAmLlBeO30Us3wipvp 3FFRxfyC/ibsiv/gU3B+JPZf8fT3pYG0lq4XuGGDTDKrM2vxCKqJ9ngoltmSNFEouduWGW 2JMPVE/HJ7RnPSuRAzu7GHCihpAVkbh/Ph9+kR3A3kfURMElYxNCLUZzE8OOgZ5YK0vfMu QvnSyNJ2PzwswfPAj4TbM5inZ22s6yLaVE896+AhJidAFpytmyAUhYhLuXS24PaJie/mXL Sq8tgy3nQAM8MjdsAsyTpdipvhTXwN94RUlG/k2B5OO2GWpQNRmaujzhNyl0NA== 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 4TQGLr0Hjkzc7R; Wed, 31 Jan 2024 22:05:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 40VM5dQ9018687; Wed, 31 Jan 2024 22:05:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 40VM5dQS018685; Wed, 31 Jan 2024 22:05:39 GMT (envelope-from git) Date: Wed, 31 Jan 2024 22:05:39 GMT Message-Id: <202401312205.40VM5dQS018685@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brad Davis Subject: git: 009d3f66cb5f - main - bsdinstall: separate out dist selection in prep for pkgbase support List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brd X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 009d3f66cb5f0cf3f1d353f311d3a6878b2a534e Auto-Submitted: auto-generated The branch main has been updated by brd: URL: https://cgit.FreeBSD.org/src/commit/?id=009d3f66cb5f0cf3f1d353f311d3a6878b2a534e commit 009d3f66cb5f0cf3f1d353f311d3a6878b2a534e Author: Brad Davis AuthorDate: 2024-01-26 17:46:46 +0000 Commit: Brad Davis CommitDate: 2024-01-31 22:05:27 +0000 bsdinstall: separate out dist selection in prep for pkgbase support No functional change intended. 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(-) 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 -export DISTRIBUTIONS="${DISTRIBUTIONS:-base.txz kernel.txz}" -if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then - DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` - DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')" - - if [ -n "$DISTMENU" ]; then - exec 5>&1 - EXTRA_DISTS=$( 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="$DISTRIBUTIONS $dist.txz" - done - fi -fi - -FETCH_DISTRIBUTIONS="" -for dist in $DISTRIBUTIONS; do - if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then - FETCH_DISTRIBUTIONS="$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=yes +if [ -n "$BSDINSTALL_USE_DISTRIBUTIONS" ]; then + exec 5>&1 + export DISTRIBUTIONS=$( `dirname $0`/selectdists 2>&1 1>&5 ) + exec 5>&- fi rm -f $PATH_FSTAB @@ -347,8 +321,10 @@ if [ -n "$FETCH_DISTRIBUTIONS" ]; then [ $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 # 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="/usr/share/bsdconfig" +. $BSDCFG_SHARE/common.subr || exit 1 + +############################################################ CONFIGURATION + +# +# Default distributions +# +DISTRIBUTIONS="${DISTRIBUTIONS:-base.txz kernel.txz}" + +############################################################ MAIN + +if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then + DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` + DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')" + + if [ -n "$DISTMENU" ]; then + EXTRA_DISTS=$( 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="$DISTRIBUTIONS $dist.txz" + done + fi +fi + +FETCH_DISTRIBUTIONS="" +for dist in $DISTRIBUTIONS; do + if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then + FETCH_DISTRIBUTIONS="$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=yes +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=3} : ${BSDDIALOG_ESC=5} : ${BSDDIALOG_ERROR=255} +export BSDINSTALL_USE_DISTRIBUTIONS=y kbdcontrol -d >/dev/null 2>&1 if [ $? -eq 0 ]; then