git: 34b43f4b26e4 - main - bsdinstall: add pkgbase prompt to auto script
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 29 Apr 2025 00:35:14 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=34b43f4b26e41a70fcb67ec5d8cf394f23b3fbf9
commit 34b43f4b26e41a70fcb67ec5d8cf394f23b3fbf9
Author: Isaac Freund <ifreund@freebsdfoundation.org>
AuthorDate: 2025-04-14 10:33:43 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2025-04-29 00:34:18 +0000
bsdinstall: add pkgbase prompt to auto script
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49824
---
usr.sbin/bsdinstall/scripts/auto | 86 ++++++++++++++++++++++++----------------
1 file changed, 52 insertions(+), 34 deletions(-)
diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto
index 7d041be015e7..339c9da433b2 100755
--- a/usr.sbin/bsdinstall/scripts/auto
+++ b/usr.sbin/bsdinstall/scripts/auto
@@ -153,36 +153,50 @@ 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
+bsddialog --backtitle "$OSNAME Installer" --title "Select Installation Type" \
+ --yes-label "Traditional" --no-label "Packages (Experimental)" --yesno \
+ "Would you like to install the base system using traditional distribution sets or packages (experimental)?" 0 0
+if [ $? -eq 1 ]; then
+ PKGBASE=yes
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
+if [ "$PKGBASE" == yes ]; then
+ bsddialog --backtitle "$OSNAME Installer" --title "Network Installation" \
+ --msgbox "Installation of base system packages currently requires internet access. The next few screens will allow you to configure networking." 0 0
bsdinstall netconfig || error
NETCONFIG_DONE=yes
+else
+ 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
+ fi
fi
rm -f $PATH_FSTAB
@@ -339,16 +353,20 @@ esac
[ -f /usr/libexec/bsdinstall/local.pre-fetch ] && f_dprintf "Running local.pre-fetch" && sh /usr/libexec/bsdinstall/local.pre-fetch "$BSDINSTALL_CHROOT"
-if [ -n "$FETCH_DISTRIBUTIONS" ]; then
- exec 5>&1
- export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&5)
- FETCH_RESULT=$?
- exec 5>&-
+if [ "$PKGBASE" == yes ]; then
+ bsdinstall pkgbase || error "Installation of base system packages failed"
+else
+ if [ -n "$FETCH_DISTRIBUTIONS" ]; then
+ exec 5>&1
+ export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&5)
+ FETCH_RESULT=$?
+ exec 5>&-
- [ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions"
+ [ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions"
+ fi
+ bsdinstall checksum || error "Distribution checksum failed"
+ bsdinstall distextract || error "Distribution extract failed"
fi
-bsdinstall checksum || error "Distribution checksum failed"
-bsdinstall distextract || error "Distribution extract failed"
# Set up boot loader
bsdinstall bootconfig || error "Failed to configure bootloader"