Page MenuHomeFreeBSD

D43621.diff
No OneTemporary

D43621.diff

diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto
--- a/usr.sbin/bsdinstall/scripts/auto
+++ b/usr.sbin/bsdinstall/scripts/auto
@@ -153,36 +153,10 @@
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 @@
[ $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
--- /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
--- 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

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 23, 4:14 PM (5 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14775384
Default Alt Text
D43621.diff (5 KB)

Event Timeline