svn commit: r263956 - in stable/9: release usr.sbin/bsdinstall usr.sbin/bsdinstall/scripts
Devin Teske
dteske at FreeBSD.org
Mon Mar 31 01:04:44 UTC 2014
Author: dteske
Date: Mon Mar 31 01:04:40 2014
New Revision: 263956
URL: http://svnweb.freebsd.org/changeset/base/263956
Log:
MFC revisions 230804,254265,255908,256338,256345,256347-256348,256489,
257842-257845,257872,259115,259143,259276,259468-259469,259572,259686,
260260-260262,260866, and 260900 (25 revisions; summarized below)...
r230804: Fix a whitespace nit (kevlo)
r254265: (recording mergeinfo only)
r255908: Remove the is (Iceland) mirror per mail from the admins (brd)
r256338: Dump 4096 bytes from /dev/random to /entropy (des)
r256345: Rewrite the keymap module
r256347: Detect when an interface is wireless (Warren Block)
r256348: Merge dumpdev into regular services; enable (Allan Jude)
r256489: Add executable bit to docsinstall and entropy scripts
r257842: Performance and debugging enhancements
r257843: Remove ttys(5) munging from previous commit
r257844: Copy install log to deployed /var/log for debugging
r257845: Fixup to last commit
r257872: Doc fixup -- add missing .El (joel)
r259115: Prevent log file from becoming truncated
r259143: Use sed(1) /i instead of /I (eadler)
r259276: Fix `local: Not in a function' error in logfile
r259468: Ignore mouse-release command from VMware
r259469: Mask error from newaliases(1) when hostname not fully qualified
r259572: Fix `rm: /tmp/bsdinstall_etc/fstab: ..." error in logfile
r259686: Move VMware mouse-release solution
r260260: Remove what appears to be a stray debugging printf
r260261: Lower priority of open wireless access policy (gavin)
r260262: Allow bsdinstall to use WPA-Enterprise networks (gavin)
r260866: Fix bad comparison and fix file comment (Christoph Mallon)
r260900: Whitespace and style nits
Added:
- copied unchanged from r256338, head/usr.sbin/bsdinstall/scripts/entropy
Directory Properties:
stable/9/usr.sbin/bsdinstall/scripts/entropy (props changed)
Modified:
stable/9/release/rc.local
stable/9/usr.sbin/bsdinstall/bsdinstall
stable/9/usr.sbin/bsdinstall/bsdinstall.8
stable/9/usr.sbin/bsdinstall/scripts/Makefile
stable/9/usr.sbin/bsdinstall/scripts/auto
stable/9/usr.sbin/bsdinstall/scripts/config
stable/9/usr.sbin/bsdinstall/scripts/docsinstall (contents, props changed)
stable/9/usr.sbin/bsdinstall/scripts/jail
stable/9/usr.sbin/bsdinstall/scripts/keymap
stable/9/usr.sbin/bsdinstall/scripts/mirrorselect
stable/9/usr.sbin/bsdinstall/scripts/netconfig
stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4
stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv6
stable/9/usr.sbin/bsdinstall/scripts/script
stable/9/usr.sbin/bsdinstall/scripts/services
stable/9/usr.sbin/bsdinstall/scripts/wlanconfig
Directory Properties:
stable/9/ (props changed)
stable/9/release/ (props changed)
stable/9/usr.sbin/ (props changed)
stable/9/usr.sbin/bsdinstall/ (props changed)
stable/9/usr.sbin/bsdinstall/scripts/ (props changed)
Modified: stable/9/release/rc.local
==============================================================================
--- stable/9/release/rc.local Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/release/rc.local Mon Mar 31 01:04:40 2014 (r263956)
@@ -19,6 +19,10 @@ if [ $? -eq 0 ]; then
TERM=xterm
fi
+ # 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
Modified: stable/9/usr.sbin/bsdinstall/bsdinstall
==============================================================================
--- stable/9/usr.sbin/bsdinstall/bsdinstall Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/bsdinstall Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,15 +26,61 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+# Delay processing of debug flags as the parent until MAIN. export'd to disable
+# re-processing of flags (all children log to the parent's log file).
+#
+export DEBUG_SELF_INITIALIZE=
+export DEBUG_INITIALIZE_FILE=
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+
+############################################################ GLOBALS
-: ${BSDINSTALL_LOG="/tmp/bsdinstall_log"}; export BSDINSTALL_LOG
: ${BSDINSTALL_TMPETC="/tmp/bsdinstall_etc"}; export BSDINSTALL_TMPETC
: ${PATH_FSTAB="$BSDINSTALL_TMPETC/fstab"}; export PATH_FSTAB
: ${BSDINSTALL_DISTDIR="/usr/freebsd-dist"}; export BSDINSTALL_DISTDIR
: ${BSDINSTALL_CHROOT="/mnt"}; export BSDINSTALL_CHROOT
-VERB=${1:-auto}; shift
+export debugFile="${debugFile-${BSDINSTALL_LOG-/tmp/bsdinstall_log}}"
+
+############################################################ MAIN
+
+#
+# Process command-line arguments
+#
+while getopts $GETOPTS_STDARGS ignored; do
+ : just skipping known flags
+done
+shift $(( $OPTIND - 1 ))
+
+# What are we here to do?
+VERB="${1:-auto}"; shift
[ -d "$BSDINSTALL_TMPETC" ] || mkdir -p "$BSDINSTALL_TMPETC"
-echo "Running installation step: $VERB $@" >> "$BSDINSTALL_LOG"
-exec "/usr/libexec/bsdinstall/$VERB" "$@" 2>> "$BSDINSTALL_LOG"
+
+# Only enable debugging if debugFile is non-NULL and can be initialized
+f_quietly f_debug_init
+f_isset debugFile || debug=
+
+f_dprintf "Running installation step: %s %s" "$VERB" "$*"
+if [ "$debug" ]; then
+ case "$debugFile" in
+ # If NULL, send errors to the bit-bucket
+ "") exec "/usr/libexec/bsdinstall/$VERB" "$@" 2> /dev/null ;;
+ # If begins with `+', send errors to both terminal and file (no `+')
+ +*) exec "/usr/libexec/bsdinstall/$VERB" "$@" \
+ 2>&1 >&$TERMINAL_STDOUT_PASSTHRU | tee "${debugFile#+}" ;;
+ # Otherwise, just send errors to the file specified
+ *) exec "/usr/libexec/bsdinstall/$VERB" "$@" 2>> "$debugFile"
+ esac
+else
+ exec "/usr/libexec/bsdinstall/$VERB" "$@" 2> /dev/null
+fi
+
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/bsdinstall.8
==============================================================================
--- stable/9/usr.sbin/bsdinstall/bsdinstall.8 Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/bsdinstall.8 Mon Mar 31 01:04:40 2014 (r263956)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 21, 2013
+.Dd October 6, 2013
.Dt BSDINSTALL 8
.Os
.Sh NAME
@@ -33,6 +33,7 @@
.Nd system installer
.Sh SYNOPSIS
.Nm
+.Op Ar options
.Op Ar target
.Op Ar ...
.Sh DESCRIPTION
@@ -49,6 +50,18 @@ invoked with no arguments, it will invok
target, which provides a standard interactive installation, invoking the
others in sequence. To perform a scripted installation, these subtargets
can be invoked separately by an installation script.
+.Sh OPTIONS
+.Nm
+supports the following options, global to all targets:
+.Bl -tag -width indent+
+.It Fl D Ar file
+Provide a path for the installation log file
+.Pq overrides Ev BSDINSTALL_LOG .
+See
+.Sx ENVIRONMENT VARIABLES
+for more information on
+.Ev BSDINSTALL_LOG .
+.El
.Sh TARGETS
Most of the following targets are only useful for scripting the installer.
For interactive use, most users will be interested only in the
@@ -60,6 +73,10 @@ targets.
.Bl -tag -width ".Cm jail Ar destination"
.It Cm auto
Run the standard interactive installation, including disk partitioning.
+.It Cm entropy
+Reads a small amount of data from
+.Pa /dev/random
+and stores it in a file in the new system's root directory.
.It Cm jail Ar destination
Sets up a new chroot system at
.Pa destination ,
Modified: stable/9/usr.sbin/bsdinstall/scripts/Makefile
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/Makefile Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/Makefile Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,8 +1,8 @@
# $FreeBSD$
-SCRIPTS= auto adduser checksum config docsinstall hostname jail keymap \
- mirrorselect mount netconfig netconfig_ipv4 netconfig_ipv6 rootpass \
- script services time umount wlanconfig
+SCRIPTS= auto adduser checksum config docsinstall entropy hostname jail \
+ keymap mirrorselect mount netconfig netconfig_ipv4 netconfig_ipv6 \
+ rootpass script services time umount wlanconfig
BINDIR= /usr/libexec/bsdinstall
NO_MAN= true
Modified: stable/9/usr.sbin/bsdinstall/scripts/auto
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/auto Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/auto Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,8 +26,13 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
-echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
+############################################################ FUNCTIONS
error() {
test -n "$DISTDIR_IS_UNIONFS" && umount -f $BSDINSTALL_DISTDIR
@@ -41,6 +47,9 @@ error() {
fi
}
+############################################################ MAIN
+
+f_dprintf "Began Installation at %s" "$( date )"
rm -rf $BSDINSTALL_TMPETC
mkdir $BSDINSTALL_TMPETC
@@ -90,7 +99,7 @@ if [ -n "$FETCH_DISTRIBUTIONS" ]; then
export BSDINSTALL_DISTSITE
fi
-rm $PATH_FSTAB
+rm -f $PATH_FSTAB
touch $PATH_FSTAB
dialog --backtitle "FreeBSD Installer" --title "Partitioning" --extra-button \
@@ -108,7 +117,12 @@ case $? in
sh 2>&1
;;
3) # Manual
- bsdinstall partedit || error
+ if f_isset debugFile; then
+ # Give partedit the path to our logfile so it can append
+ BSDINSTALL_LOG="${debugFile#+}" bsdinstall partedit || error
+ else
+ bsdinstall partedit || error
+ fi
bsdinstall mount || error
;;
*)
@@ -222,5 +236,11 @@ if [ $? -eq 0 ]; then
chroot "$BSDINSTALL_CHROOT" /bin/sh 2>&1
fi
-echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
+bsdinstall entropy
+bsdinstall umount
+
+f_dprintf "Installation Completed at %s" "$( date )"
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/config
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/config Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/config Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,12 +26,19 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ MAIN
cat $BSDINSTALL_TMPETC/rc.conf.* >> $BSDINSTALL_TMPETC/rc.conf
rm $BSDINSTALL_TMPETC/rc.conf.*
cp $BSDINSTALL_TMPETC/* $BSDINSTALL_CHROOT/etc
+[ "${debugFile#+}" ] && cp "${debugFile#+}" $BSDINSTALL_CHROOT/var/log/
+
# Set up other things from installed config
-chroot $BSDINSTALL_CHROOT /usr/bin/newaliases
+chroot $BSDINSTALL_CHROOT /usr/bin/newaliases > /dev/null 2>&1
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/docsinstall
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/docsinstall Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/docsinstall Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Marc Fonvieille
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,55 +26,137 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/mustberoot.subr
+f_include $BSDCFG_SHARE/packages/packages.subr
-exec 3>&1
-DOCS=$(dialog --backtitle "FreeBSD Installer" \
- --title "FreeBSD Documentation Installation" --separate-output \
- --checklist "This menu will allow you to install the whole documentation set
-from the FreeBSD Documentation Project: Handbook, FAQ and articles.\n\n
-Please select the language versions you wish to install. At minimum,
-you should install the English version, this is the original version
-of the documentation.\n\n
-NB: This requires a working, configured network connection." 0 0 0 \
- bn "Bengali Documentation" ${DIST_DOC_BN:-off} \
- da "Danish Documentation" ${DIST_DOC_DA:-off} \
- de "German Documentation" ${DIST_DOC_DE:-off} \
- el "Greek Documentation" ${DIST_DOC_EL:-off} \
- en "English Documentation (recommended)" ${DIST_DOC_EN:-on} \
- es "Spanish Documentation" ${DIST_DOC_ES:-off} \
- fr "French Documentation" ${DIST_DOC_FR:-off} \
- hu "Hungarian Documentation" ${DIST_DOC_HU:-off} \
- it "Italian Documentation" ${DIST_DOC_IT:-off} \
- ja "Japanese Documentation" ${DIST_DOC_JA:-off} \
- mn "Mongolian Documentation" ${DIST_DOC_MN:-off} \
- nl "Dutch Documentation" ${DIST_DOC_NL:-off} \
- pl "Polish Documentation" ${DIST_DOC_PL:-off} \
- pt "Portuguese Documentation" ${DIST_DOC_PT:-off} \
- ru "Russian Documentation" ${DIST_DOC_RU:-off} \
- sr "Serbian Documentation" ${DIST_DOC_SR:-off} \
- tr "Turkish Documentation" ${DIST_DOC_TR:-off} \
- zh_cn "Simplified Chinese Documentation" ${DIST_DOC_ZH_CN:-off} \
- zh_tw "Traditional Chinese Documentation" ${DIST_DOC_ZH_TW:-off} \
-2>&1 1>&3)
-test $? -eq 0 || exit 0
-exec 3>&-
+############################################################ CONFIGURATION
-# Let pkg_add be able to use name servers
-cp ${BSDINSTALL_TMPETC}/resolv.conf ${BSDINSTALL_CHROOT}/etc
+#
+# List of languages to display (descriptions pulled from $msg_{lang}doc_desc)
+#
+: ${DOCSINSTALL_LANGS:=\
+ bn da de el en es fr hu it ja mn nl pl pt ru sr tr zh_cn zh_tw \
+}
+
+############################################################ GLOBALS
-error() {
- dialog --backtitle "FreeBSD Installer" --title "Error" --msgbox \
- "Could not install package $1 (`tail -n 1 ${BSDINSTALL_LOG}`)" 0 0
- exit 1
+#
+# Strings that should be moved to an i18n file and loaded with f_include_lang()
+#
+hline_arrows_space_tab_enter="Use arrows, SPACE, TAB or ENTER"
+msg_bndoc_desc="Bengali Documentation"
+msg_cancel="Cancel"
+msg_dadoc_desc="Danish Documentation"
+msg_dedoc_desc="German Documentation"
+msg_docsinstall_menu_text="This menu allows you to install the whole documentation set from\nthe FreeBSD Documentation Project: Handbook, FAQ, and articles.\n\nPlease select the language versions you wish to install. At\nminimum, you should install the English version, the original\nversion of the documentation."
+msg_eldoc_desc="Greek Documentation"
+msg_endoc_desc="English Documentation (recommended)"
+msg_esdoc_desc="Spanish Documentation"
+msg_frdoc_desc="French Documentation"
+msg_freebsd_documentation_installation="FreeBSD Documentation Installation"
+msg_freebsd_installer="FreeBSD Installer"
+msg_hudoc_desc="Hungarian Documentation"
+msg_itdoc_desc="Italian Documentation"
+msg_jadoc_desc="Japanese Documentation"
+msg_mndoc_desc="Mongolian Documentation"
+msg_nldoc_desc="Dutch Documentation"
+msg_ok="OK"
+msg_pldoc_desc="Polish Documentation"
+msg_ptdoc_desc="Portuguese Documentation"
+msg_rudoc_desc="Russian Documentation"
+msg_srdoc_desc="Serbian Documentation"
+msg_trdoc_desc="Turkish Documentation"
+msg_zh_cndoc_desc="Simplified Chinese Documentation"
+msg_zh_twdoc_desc="Traditional Chinese Documentation"
+
+############################################################ FUNCTIONS
+
+# dialog_menu_main
+#
+# Display the dialog(1)-based application main menu.
+#
+dialog_menu_main()
+{
+ local title="$DIALOG_TITLE"
+ local btitle="$DIALOG_BACKTITLE"
+ local prompt="$msg_docsinstall_menu_text"
+ local check_list= # Calculated below
+ local hline="$hline_arrows_space_tab_enter"
+
+ local lang desc upper status
+ for lang in $DOCSINSTALL_LANGS; do
+ # Fetch the i18n description to display
+ f_getvar msg_${lang}doc_desc desc
+ f_shell_escape "$desc" desc
+
+ # Get default status for each language
+ upper=$( echo "$lang" | awk '{print toupper($0)}' )
+ case "$lang" in
+ en) f_getvar DIST_DOC_$upper:-on status ;;
+ *) f_getvar DIST_DOC_$upper:-off status
+ esac
+
+ check_list="$check_list
+ '$lang' '$desc' '$status'
+ " # END-QUOTE
+ done
+
+ local height width rows
+ eval f_dialog_checklist_size height width rows \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $check_list
+ local selected
+ selected=$( eval $DIALOG \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --checklist \"\$prompt\" \
+ $height $width $rows \
+ $check_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ local retval=$?
+ f_dialog_menutag_store -s "$selected"
+ return $retval
}
+############################################################ MAIN
+
+#
+# Initialize
+#
+f_dialog_title "$msg_freebsd_documentation_installation"
+f_dialog_backtitle "$msg_freebsd_installer"
+f_mustberoot_init
-clear
-echo "FreeBSD Installer"
-echo "========================"
-echo
+#
+# Launch application main menu
+#
+dialog_menu_main || f_die
+f_dialog_menutag_fetch selected
-for i in $DOCS; do
- pkg_add -C ${BSDINSTALL_CHROOT} -r ${i}-freebsd-doc || error $i-freebsd-doc
+# Let pkg_add be able to use name servers
+f_quietly cp -f $BSDINSTALL_TMPETC/resolv.conf $BSDINSTALL_CHROOT/etc/
+
+#
+# Install each of the selected packages
+#
+for lang in $selected; do
+ f_package_add $lang-freebsd-doc || return $FAILURE
done
+
+################################################################################
+# END
+################################################################################
Copied: stable/9/usr.sbin/bsdinstall/scripts/entropy (from r256338, head/usr.sbin/bsdinstall/scripts/entropy)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/9/usr.sbin/bsdinstall/scripts/entropy Mon Mar 31 01:04:40 2014 (r263956, copy of r256338, head/usr.sbin/bsdinstall/scripts/entropy)
@@ -0,0 +1,29 @@
+#!/bin/sh
+#-
+# Copyright (c) 2013 Dag-Erling Smørgrav
+# 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.
+#
+# $FreeBSD$
+
+dd if=/dev/random of=$BSDINSTALL_CHROOT/entropy bs=4096 count=1
Modified: stable/9/usr.sbin/bsdinstall/scripts/jail
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/jail Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/jail Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,8 +26,15 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
-echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
+############################################################ MAIN
+
+f_dprintf "Began Installation at %s" "$( date )"
export BSDINSTALL_CHROOT=$1
error() {
@@ -110,5 +118,10 @@ bsdinstall config || error
cp /etc/resolv.conf $1/etc
cp /etc/localtime $1/etc
-echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
+bsdinstall entropy
+
+f_dprintf "Installation Completed at %s" "$(date)"
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/keymap
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/keymap Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/keymap Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,11 +26,212 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/keymap.subr
+f_include $BSDCFG_SHARE/sysrc.subr
+
+############################################################ CONFIGURATION
+
+#
+# Default file to store keymap selection in
+#
+: ${KEYMAPFILE:=$BSDINSTALL_TMPETC/rc.conf.keymap}
+
+#
+# Default path to keymap INDEX containing descriptions
+#
+: ${MAPDESCFILE:=/usr/share/syscons/keymaps/INDEX.keymaps}
+
+############################################################ GLOBALS
+
+#
+# Strings that should be moved to an i18n file and loaded with f_include_lang()
+#
+hline_arrows_tab_enter="Press arrows, TAB or ENTER"
+msg_continue_with_keymap="Continue with %s keymap"
+msg_default="default"
+msg_error="Error"
+msg_freebsd_installer="FreeBSD Installer"
+msg_keymap_menu_text="The system console driver for FreeBSD defaults to standard \"US\"\nkeyboard map. Other keymaps can be chosen below."
+msg_keymap_selection="Keymap Selection"
+msg_ok="OK"
+msg_select="Select"
+msg_test_keymap="Test %s keymap"
+msg_test_the_currently_selected_keymap="Test the currently selected keymap"
+msg_test_the_keymap_by_typing="Test the keymap by typing letters, numbers, and symbols. Characters\nshould match labels on the keyboard keys. Press Enter to stop testing."
+
+############################################################ FUNCTIONS
+
+# dialog_keymap_test $keymap
+#
+# Activate $keymap and display an input box (without cancel button) for the
+# user to test keyboard input and return. Always returns success.
+#
+dialog_keymap_test()
+{
+ local keym="$1"
+ local title= # Calculated below
+ local btitle= # Calculated below
+ local prompt="$msg_test_the_keymap_by_typing"
+ local hline=
+
+ # Attempt to activate the keymap
+ if [ "$keym" ]; then
+ local err
+ err=$( f_keymap_kbdcontrol "$keym" 2>&1 > /dev/null )
+ if [ "$err" ]; then
+ f_dialog_title "$msg_error"
+ f_dialog_msgbox "$err"
+ f_dialog_title_restore
+ return $FAILURE
+ fi
+ fi
+
+ f_dialog_title "$( printf "$msg_test_keymap" "${keym:-$msg_default}" )"
+ title="$DIALOG_TITLE"
+ btitle="$DIALOG_BACKTITLE"
+ f_dialog_title_restore
+
+ local height width
+ f_dialog_inputbox_size height width \
+ "$title" "$btitle" "$prompt" "" "$hline"
+
+ $DIALOG \
+ --title "$title" \
+ --backtitle "$btitle" \
+ --hline "$hline" \
+ --ok-label "$msg_ok" \
+ --no-cancel \
+ --inputbox "$prompt" \
+ $height $width \
+ 2>/dev/null >&$DIALOG_TERMINAL_PASSTHRU_FD
-kbdcontrol -d >/dev/null 2>&1
-if [ $? -eq 0 ]; then
- dialog --backtitle "FreeBSD Installer" --title "Keymap Selection" \
- --yesno "Would you like to set a non-default key mapping for your keyboard?" 0 0 || exit 0
- exec 3>&1
- kbdmap 2>&1 1>&3 | grep 'keymap=' > $BSDINSTALL_TMPETC/rc.conf.keymap
+ return $DIALOG_OK
+}
+
+############################################################ MAIN
+
+#
+# Initialize
+#
+f_dialog_title "$msg_keymap_selection"
+f_dialog_backtitle "$msg_freebsd_installer"
+
+#
+# Die immediately if we can't dump the current keyboard map
+#
+#error=$( kbdcontrol -d 2>&1 > /dev/null ) || f_die $FAILURE "%s" "$error"
+
+# Capture Ctrl-C for clean-up
+trap 'rm -f $KEYMAPFILE; exit $FAILURE' SIGINT
+
+# Get a value from rc.conf(5) as initial value (if not being scripted)
+f_getvar $VAR_KEYMAP keymap
+if [ ! "$keymap" ]; then
+ keymap=$( f_sysrc_get keymap )
+ case "$keymap" in [Nn][Oo]) keymap="";; esac
fi
+
+#
+# Loop until the user has finalized their selection (by clicking the
+# [relabeled] Cancel button).
+#
+width=67 first_pass=1 back_from_testing=
+[ "$USE_XDIALOG" ] && width=70
+prompt="$msg_keymap_menu_text"
+hline="$hline_arrows_tab_enter"
+while :; do
+ #
+ # Re/Build list of keymaps
+ #
+ cont_msg=$( printf "$msg_continue_with_keymap" \
+ "${keymap:-$msg_default}" )
+ test_msg=$( printf "$msg_test_keymap" "${keymap:-$msg_default}" )
+ menu_list="
+ '>>> $cont_msg' '' '$msg_continue_with_current_keymap'
+ '->- $test_msg' '' '$msg_test_the_currently_selected_keymap'
+ " # END-QUOTE
+ if [ "$first_pass" ]; then
+ defaultitem=
+ first_pass=
+ else
+ defaultitem="->- $test_msg"
+ fi
+ for k in $KEYMAPS; do
+ keymap_$k get keym keym
+ keymap_$k get desc desc
+ radio=" "
+ if [ "$keym" = "$keymap" ]; then
+ radio="*"
+ if [ "$back_from_testing" ]; then
+ defaultitem="(*) $desc"
+ back_from_testing=
+ fi
+ fi
+ f_shell_escape "$desc" desc
+ menu_list="$menu_list
+ '($radio) $desc' '' '$keym: $desc'
+ " # END-QUOTE
+ done
+ back_from_testing=
+
+ #
+ # Display keymap configuration menu
+ #
+ eval f_dialog_menu_with_help_size height \"\" rows \
+ \"\$DIALOG_TITLE\" \
+ \"\$DIALOG_BACKTITLE\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list
+ menu_choice=$( eval $DIALOG \
+ --title \"\$DIALOG_TITLE\" \
+ --backtitle \"\$DIALOG_BACKTITLE\" \
+ --hline \"\$hline\" \
+ --keep-tite \
+ --item-help \
+ --ok-label \"\$msg_select\" \
+ --cancel-label \"\$msg_cancel\" \
+ --default-item \"\$defaultitem\" \
+ --menu \"\$prompt\" \
+ $height $width $rows \
+ $menu_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ ) || {
+ f_quietly rm -f "$KEYMAPFILE"
+ exit $FAILURE # Exit with an error so bsdinstall restarts
+ }
+ f_dialog_data_sanitize menu_choice
+
+ case "$menu_choice" in
+ ">>> "*) # Continue with keymap
+ break ;;
+ "->-"*) # Test keymap
+ dialog_keymap_test "$keymap"
+ back_from_testing=1
+ continue ;;
+ esac
+
+ # Turn the user's choice into a number
+ n=$( eval f_dialog_menutag2index_with_help \
+ \"\$menu_choice\" $menu_list )
+
+ # Turn that number ithe name of the keymap struct
+ k=$( set -- $KEYMAPS; eval echo \"\${$(( $n - 2))}\" )
+
+ # Get actual keymap setting while we update $keymap and $KEYMAPFILE
+ keymap_$k get keym keymap
+ echo "keymap=\"$keymap\"" > "$KEYMAPFILE"
+done
+
+f_quietly f_keymap_kbdcontrol "$keymap"
+
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/mirrorselect
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/mirrorselect Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/mirrorselect Mon Mar 31 01:04:40 2014 (r263956)
@@ -87,7 +87,6 @@ MIRROR=`dialog --backtitle "FreeBSD Inst
ftp://ftp8.de.freebsd.org "Germany #8"\
ftp://ftp.gr.freebsd.org "Greece"\
ftp://ftp2.gr.freebsd.org "Greece #2"\
- ftp://ftp.is.freebsd.org "Iceland"\
ftp://ftp3.ie.freebsd.org "Ireland #3"\
ftp://ftp.il.freebsd.org "Israel"\
ftp://ftp.it.freebsd.org "Italy"\
Modified: stable/9/usr.sbin/bsdinstall/scripts/netconfig
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/netconfig Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/netconfig Mon Mar 31 01:04:40 2014 (r263956)
@@ -41,11 +41,19 @@ DIALOG_TAGS=""
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}
+# Do a dirty check to see if this a wireless interface -- there should be a
+# better way
+is_wireless_if() {
+ ifconfig $1 | grep -q 'media: IEEE 802.11 Wireless'
+}
+
for IF in `ifconfig -l`; do
test "$IF" = "lo0" && continue
(ifconfig -g wlan | egrep -wq $IF) && continue
INTERFACES="$INTERFACES $IF"
DESC=`sysctl -n dev.$(echo $IF | sed -E 's/([[:alpha:]]*)([[:digit:]]*)/\1.\2/g').%desc`
+ is_wireless_if $IF && echo $DESC |
+ grep -iqv wireless && DESC="Wireless $DESC"
DIALOG_TAGS="$DIALOG_TAGS $IF \"$DESC\""
done
@@ -63,10 +71,8 @@ exec 3>&-
: > $BSDINSTALL_TMPETC/._rc.conf.net
-# Do a dirty check to see if this a wireless interface -- there should be a
-# better way
IFCONFIG_PREFIX=""
-if ifconfig $INTERFACE | grep -q 'media: IEEE 802.11 Wireless'; then
+if is_wireless_if $INTERFACE; then
NEXT_WLAN_IFACE=wlan0 # XXX
echo wlans_$INTERFACE=\"$NEXT_WLAN_IFACE\" >> $BSDINSTALL_TMPETC/._rc.conf.net
IFCONFIG_PREFIX="WPA "
Modified: stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4 Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,13 +26,15 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
-: ${DIALOG_OK=0}
-: ${DIALOG_CANCEL=1}
-: ${DIALOG_HELP=2}
-: ${DIALOG_EXTRA=3}
-: ${DIALOG_ITEM_HELP=4}
-: ${DIALOG_ESC=255}
+############################################################ MAIN
INTERFACE=$1
IFCONFIG_PREFIX="$2"
@@ -49,8 +52,9 @@ if [ $? -eq $DIALOG_OK ]; then
if [ ! -z $BSDINSTALL_CONFIGCURRENT ]; then
dialog --backtitle 'FreeBSD Installer' --infobox "Acquiring DHCP lease..." 0 0
- dhclient $INTERFACE 2>> $BSDINSTALL_LOG
+ err=$( dhclient $INTERFACE 2>&1 )
if [ $? -ne 0 ]; then
+ f_dprintf "%s" "$err"
dialog --backtitle 'FreeBSD Installer' --msgbox "DHCP lease acquisition failed." 0 0
exec $0 ${INTERFACE} "${IFCONFIG_PREFIX}"
fi
@@ -73,7 +77,7 @@ exec 3>&-
echo $INTERFACE $IF_CONFIG |
awk -v prefix="$IFCONFIG_PREFIX" '{
- printf("ifconfig_%s=\"%s inet %s netmask %s\"\n", $1, prefix, $2, $3);
+ printf("ifconfig_%s=\"%s\inet %s netmask %s\"\n", $1, prefix, $2, $3);
printf("defaultrouter=\"%s\"\n", $4);
}' >> $BSDINSTALL_TMPETC/._rc.conf.net
@@ -86,3 +90,6 @@ if [ ! -z $BSDINSTALL_CONFIGCURRENT ]; t
fi
fi
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv6
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv6 Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv6 Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,8 +1,8 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
-# All rights reserved.
# Copyright (c) 2011 The FreeBSD Foundation
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Portions of this software were developed by Bjoern Zeeb
@@ -30,19 +30,21 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
+
+############################################################ MAIN
#
# TODO:
# - Add DHCPv6 support once FreeBSD ships with it.
#
-: ${DIALOG_OK=0}
-: ${DIALOG_CANCEL=1}
-: ${DIALOG_HELP=2}
-: ${DIALOG_EXTRA=3}
-: ${DIALOG_ITEM_HELP=4}
-: ${DIALOG_ESC=255}
-
INTERFACE=$1
case "${INTERFACE}" in
"") dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' \
@@ -61,8 +63,9 @@ while : ; do
dialog --backtitle 'FreeBSD Installer' \
--infobox "Sending Router Solicitation ..." 0 0
ifconfig ${INTERFACE} inet6 -ifdisabled accept_rtadv up
- rtsol -F $INTERFACE 2>> $BSDINSTALL_LOG
+ err=$( rtsol -F $INTERFACE 2>&1 )
if [ $? -ne 0 ]; then
+ f_dprintf "%s" "$err"
dialog --backtitle 'FreeBSD Installer' --msgbox "SLAAC failed." 0 0
AGAIN=" again"
continue
@@ -148,3 +151,6 @@ if [ ! -z $BSDINSTALL_CONFIGCURRENT ]; t
fi
fi
+################################################################################
+# END
+################################################################################
Modified: stable/9/usr.sbin/bsdinstall/scripts/script
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/script Mon Mar 31 00:28:54 2014 (r263955)
+++ stable/9/usr.sbin/bsdinstall/scripts/script Mon Mar 31 01:04:40 2014 (r263956)
@@ -1,6 +1,7 @@
#!/bin/sh
#-
# Copyright (c) 2013 Nathan Whitehorn
+# Copyright (c) 2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,27 +26,55 @@
# SUCH DAMAGE.
#
# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+
+############################################################ CONFIGURATION
# VARIABLES:
# PARTITIONS
# DISTRIBUTIONS
# BSDINSTALL_DISTDIR
-error() {
- test -f $PATH_FSTAB && bsdinstall umount
- echo "Installation Error!"
- cat $BSDINSTALL_LOG
- echo "Installation Error!"
+############################################################ GLOBALS
+
+#
+# Strings that should be moved to an i18n file and loaded with f_include_lang()
+#
+msg_installation_error="Installation Error!"
+
+############################################################ FUNCTIONS
+
+error()
+{
+ [ -f "$PATH_FSTAB" ] && bsdinstall umount
+
+ local file
+ f_getvar "$VAR_DEBUG_FILE#+" file
+ if [ "$file" ]; then
+ f_dialog_title "$msg_installation_error"
+ f_dialog_textbox "$file"
+ # No need to restore title, pining for the fjords
+ fi
+
exit 1
}
+############################################################ MAIN
+
set -e
trap error EXIT
SCRIPT="$1"
shift
-echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
+f_dprintf "Began Instalation at %s" "$( date )"
rm -rf $BSDINSTALL_TMPETC
mkdir $BSDINSTALL_TMPETC
@@ -55,6 +84,14 @@ split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsd
: ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS
export BSDINSTALL_DISTDIR
+# Re-initialize a new log if preamble changed BSDINSTALL_LOG
+if [ "$BSDINSTALL_LOG" != "${debugFile#+}" ]; then
+ export debugFile="$BSDINSTALL_LOG"
+ f_quietly f_debug_init
+ # NB: Being scripted, let debug go to terminal for invalid debugFile
+ f_dprintf "Began Instalation at %s" "$( date )"
+fi
+
# Make partitions
rm -f $PATH_FSTAB
touch $PATH_FSTAB
@@ -83,8 +120,13 @@ if [ -f /tmp/bsdinstall-installscript-ab
rm $BSDINSTALL_CHROOT/tmp/installscript
fi
+bsdinstall entropy
bsdinstall umount
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-stable-9
mailing list