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 ***
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to