diff -Nru console-setup.orig/debian/console-setup.config console-setup/debian/console-setup.config
--- console-setup.orig/debian/console-setup.config	2021-08-18 22:17:59.892444554 -0700
+++ console-setup/debian/console-setup.config	2021-08-18 22:42:21.524213193 -0700
@@ -64,7 +64,7 @@
 # fontsets='Arabic-Fixed15
 # Arabic-Fixed16
 # Arabic-VGA14
-# ... 
+# ...
 # Vietnamese-Fixed18
 # '
 
@@ -104,18 +104,6 @@
 
 db_capb backup
 
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -f "$i/$1" -a -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 available_fontfaces () {
     local prefix
     case "$CODESET" in
@@ -195,14 +183,14 @@
 }
 
 kernel=unknown
-if which uname >/dev/null; then
+if command -v uname >/dev/null; then
     case "`uname`" in
         *Linux*) kernel=linux ;;
         *FreeBSD*) kernel=freebsd ;;
     esac
 fi
 
-if which locale 2>/dev/null >/dev/null; then
+if command -v locale 2>/dev/null >/dev/null; then
     eval `locale`
 fi
 
@@ -217,7 +205,7 @@
 if [ "$locale" = C ]; then
     CHARMAP=ISO-8859-15
     charmap_priority=high
-elif which locale 2>/dev/null >/dev/null; then
+elif command -v locale 2>/dev/null >/dev/null; then
     CHARMAP=`locale charmap`
 else
     CHARMAP=unknown
diff -Nru console-setup.orig/debian/console-setup-udeb.postinst console-setup/debian/console-setup-udeb.postinst
--- console-setup.orig/debian/console-setup-udeb.postinst	2021-08-18 22:17:59.892444554 -0700
+++ console-setup/debian/console-setup-udeb.postinst	2021-08-18 22:43:48.226081884 -0700
@@ -5,20 +5,6 @@
 # Source debconf library.
 . /usr/share/debconf/confmodule
 
-# The same as /usr/bin/which - in order to make "which" available before
-# /usr is mounted
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 # In d-i the config script is not executed automatically
 if [ -f /usr/share/console-setup/keyboard-configuration.config ]; then
     /usr/share/console-setup/keyboard-configuration.config || exit $?
@@ -37,7 +23,7 @@
 CONFIGFILE=/etc/default/keyboard
 
 if [ "$1" = "configure" -a ! -L "$CONFIGFILE" ]; then
-    
+
     db_get keyboard-configuration/modelcode
     model="$RET"
 
@@ -64,8 +50,8 @@
         if ! grep "^ *${var}=" $CONFIGFILE >/dev/null; then
 	    echo "${var}=" >>$CONFIGFILE
 	fi
-    done    
-    
+    done
+
     sed \
 	-e "s|^ *XKBMODEL=.*|XKBMODEL=\"$model\"|" \
 	-e "s|^ *XKBLAYOUT=.*|XKBLAYOUT=\"$layout\"|" \
@@ -73,7 +59,7 @@
 	-e "s|^ *XKBOPTIONS=.*|XKBOPTIONS=\"$options\"|" \
 	-e "s|^ *BACKSPACE=.*|BACKSPACE=\"${BACKSPACE:-guess}\"|" \
 	<$CONFIGFILE >$CONFIGFILE.tmp
-    
+
     mv -f $CONFIGFILE.tmp $CONFIGFILE
 
     db_set keyboard-configuration/store_defaults_in_debconf_db true
@@ -82,7 +68,7 @@
 if \
     [ -d /lib/debian-installer.d ] && keyboard_present
 then
-    if [ "$DISPLAY" ] && which setxkbmap >/dev/null; then
+    if [ "$DISPLAY" ] && command -v setxkbmap >/dev/null; then
 	setxkbmap -option '' -model "$model" "$layout" "$variant" "$options"
     else
 	case "`uname`" in
diff -Nru console-setup.orig/debian/keyboard-configuration.config console-setup/debian/keyboard-configuration.config
--- console-setup.orig/debian/keyboard-configuration.config	2021-08-18 22:17:59.892444554 -0700
+++ console-setup/debian/keyboard-configuration.config	2021-08-18 22:43:19.410790210 -0700
@@ -91,18 +91,6 @@
 #    regex_pattern_escape and regex_unescape.
 ######################################################################
 
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -f "$i/$1" -a -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 # Store default value into debconf db.  Workaround #352697.
 db_default () {
     db_get keyboard-configuration/store_defaults_in_debconf_db
@@ -160,7 +148,7 @@
 ## KBDNAMES ## Will be replaced by all_kbdnames function:
 
 # all_kbdnames () {
-#  cat <<'EOF' 
+#  cat <<'EOF'
 # C*model*logidinovo*Logitech diNovo Keyboard
 # C*model*amiga*Amiga
 # ...
@@ -200,9 +188,9 @@
     add="
 $add"
 
-    choices1=`echo "$kbdnames" | grep "^$prefix\*" | 
+    choices1=`echo "$kbdnames" | grep "^$prefix\*" |
         sed -e "s/^$prefix\*[^\*]*\*//" -e 's/,/\\\\,/g' | sort`
-    choices2=`echo "$add" | grep "^$prefix\*" | 
+    choices2=`echo "$add" | grep "^$prefix\*" |
         sed -e "s/^$prefix\*[^\*]*\*//" -e 's/,/\\\\,/g'`
     choices=`echo "$choices1
 $choices2" | sed -e 's/$/,/'`
@@ -212,13 +200,13 @@
 
     if echo "$choices" | grep '[^\\\\],' >/dev/null; then
 	db_subst $template CHOICES "$choices"
-	default_description=`echo "$kbdnames$add" |  
+	default_description=`echo "$kbdnames$add" |
             grep "^$prefix\*${default_code}\*" |
             sed -e "s/^$prefix\*${default_code}\*//" |
 	    regex_unescape`
 	if [ -z "$default_description" ]; then
 	    # For XkbVariant the empty string is usually a sensible default
-	    default_description=`echo "$kbdnames$add" |  
+	    default_description=`echo "$kbdnames$add" |
                 grep "^$prefix\*\*" |
 		sed -e "s/^$prefix\*\*//" |
 		regex_unescape `
@@ -230,7 +218,7 @@
 	    # description, so we'd better ask.
 	    priority=critical
 	fi
-	
+
         db_input $priority $template || true
 	db_go || return 255
 	db_get $template
@@ -277,13 +265,13 @@
 guess_arch () {
     local arch subarch line
 
-    if which archdetect 2>/dev/null >/dev/null; then
+    if command -v archdetect 2>/dev/null >/dev/null; then
 	archdetect
 	return 0
     fi
 
     arch=`dpkg --print-architecture`
-    
+
     if [ "$arch" = 'powerpc' -o "$arch" = 'm68k' ]; then
 	if [ "$arch" = powerpc ]; then
 	    line=`sed -n 's/^platform.*: *//p' /proc/cpuinfo`
@@ -341,7 +329,7 @@
 # Set $locale.  Extract the strings for the chosen language in $kbdnames
 #########################################################################
 
-if which locale 2>/dev/null >/dev/null; then
+if command -v locale 2>/dev/null >/dev/null; then
     eval `locale`
 fi
 
@@ -381,7 +369,7 @@
 
 if [ "$is_not_debian_installer" ]; then
     if \
-        ! which iconv >/dev/null \
+        ! command -v iconv >/dev/null \
         || ! kbdnames="$(echo "$kbdnames" |
                 iconv -f UTF-8 -t $(locale charmap)//TRANSLIT)"
     then
@@ -488,7 +476,7 @@
 	XKBMODEL=pc105 # UNKNOWN
 	model_priority=critical
 	;;
-esac    
+esac
 
 layout_priority=critical
 case "$locale" in
@@ -879,7 +867,7 @@
 if db_get debian-installer/keymap && [ "$RET" ]; then
     di_keymap="${RET##mac-usb-}"
     di_keymap="${di_keymap%%-latin1}"
-    
+
     old_xkbvariant="$XKBVARIANT"
     XKBVARIANT=''
     old_layout_priority=$layout_priority
@@ -912,7 +900,7 @@
 	kr|kr106) XKBLAYOUT="kr"; XKBVARIANT='';;
 	kr104) XKBLAYOUT="kr"; XKBVARIANT="kr104";;
 	la) XKBLAYOUT="latam";;
-	lt) XKBLAYOUT="lt";; 
+	lt) XKBLAYOUT="lt";;
 	lv-latin4) XKBLAYOUT="lv";;
 	mac-us-std) XKBLAYOUT="us";;
 	mac-de2-ext) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
@@ -937,7 +925,7 @@
 	ua) XKBLAYOUT="us,ua";;
 	uk) XKBLAYOUT="gb";;
 	us) XKBLAYOUT="us";;
-	*) 
+	*)
 	    XKBVARIANT="$old_xkbvariant"
 	    layout_priority=$old_layout_priority
 	    ;;
@@ -948,7 +936,7 @@
 # Lower the priority of the Debconf question to medium.
 if \
     [ -f /etc/X11/xorg.conf -a ! -e $CONFIGFILE ] \
-    && which awk 2>/dev/null >/dev/null
+    && command -v awk 2>/dev/null >/dev/null
 then
     awk_expr='
 {
@@ -968,7 +956,7 @@
 	} else if ($2 == "\"xkbvariant\"") {
 	    xkb = "XKBVARIANT";
 	} else if ($2 == "\"xkboptions\"") {
-	    xkb = "XKBOPTIONS"; 
+	    xkb = "XKBOPTIONS";
 	}
 	$0 = line;
 	$1 = "";
@@ -1088,7 +1076,7 @@
 	    else
 		unsupported_layout=yes
 	    fi
-	    ;;	    
+	    ;;
 	*,*)
 	    unsupported_layout=yes
 	    ;;
@@ -1371,7 +1359,7 @@
 		    layout "$debconf_layout"
 	    then
 		debconf_layout="$RET"
-		STATE=$(($STATE + 1)) 
+		STATE=$(($STATE + 1))
 	    else
 		# always to the next question
 		STATE=$(($STATE + 1))
@@ -1610,7 +1598,7 @@
 		if [ "$toggle" ]; then
 		    toggle=grp:$toggle
 		fi
-		
+
 		db_get keyboard-configuration/switch
 		switch=''
 		case "$RET" in
@@ -1653,7 +1641,7 @@
 		if [ "$switch" ]; then
 		    switch=grp:$switch
 		fi
-		
+
 		db_get keyboard-configuration/altgr
 		altgr=''
 		case "$RET" in
@@ -1740,12 +1728,12 @@
 			fi;;
 		    Left?Logo?key)
 			if [ "$lwin_allocated" != yes ]; then
-			    compose=lwin 
+			    compose=lwin
 			    lwin_allocated=yes
 			fi;;
 		    Right?Control)
 			if [ "$rctrl_allocated" != yes ]; then
-			    compose=rctrl 
+			    compose=rctrl
 			    rctrl_allocated=yes
 			fi;;
 		    Menu?key)
@@ -1766,14 +1754,14 @@
 		if [ "$compose" ]; then
 		    compose=compose:$compose
 		fi
-		
+
 		db_get keyboard-configuration/ctrl_alt_bksp
 		if [ "$RET" = true ]; then
 		    terminate=terminate:ctrl_alt_bksp
 		else
 		    terminate=''
 		fi
-		
+
 		# A fix for #566009
 		if [ "$ralt_allocated" = yes -a "$altgr" = lv3:ralt_alt ]; then
 		    altgr=''
@@ -1785,7 +1773,7 @@
 		    *)
 			leds='';;
 		esac
-		
+
 		options=$(
 		    echo $toggle $switch $altgr $compose $terminate $leds \
 			| sed -e 's/^ *//' -e 's/ *$//' -e 's/  */,/g'
diff -Nru console-setup.orig/debian/keyboard-configuration.postinst console-setup/debian/keyboard-configuration.postinst
--- console-setup.orig/debian/keyboard-configuration.postinst	2021-08-18 22:17:59.892444554 -0700
+++ console-setup/debian/keyboard-configuration.postinst	2021-08-18 22:43:48.226081884 -0700
@@ -5,20 +5,6 @@
 # Source debconf library.
 . /usr/share/debconf/confmodule
 
-# The same as /usr/bin/which - in order to make "which" available before
-# /usr is mounted
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 # In d-i the config script is not executed automatically
 if [ -f /usr/share/console-setup/keyboard-configuration.config ]; then
     /usr/share/console-setup/keyboard-configuration.config || exit $?
@@ -37,7 +23,7 @@
 CONFIGFILE=/etc/default/keyboard
 
 if [ "$1" = "configure" -a ! -L "$CONFIGFILE" ]; then
-    
+
     db_get keyboard-configuration/modelcode
     model="$RET"
 
@@ -64,8 +50,8 @@
         if ! grep "^ *${var}=" $CONFIGFILE >/dev/null; then
 	    echo "${var}=" >>$CONFIGFILE
 	fi
-    done    
-    
+    done
+
     sed \
 	-e "s|^ *XKBMODEL=.*|XKBMODEL=\"$model\"|" \
 	-e "s|^ *XKBLAYOUT=.*|XKBLAYOUT=\"$layout\"|" \
@@ -73,7 +59,7 @@
 	-e "s|^ *XKBOPTIONS=.*|XKBOPTIONS=\"$options\"|" \
 	-e "s|^ *BACKSPACE=.*|BACKSPACE=\"${BACKSPACE:-guess}\"|" \
 	<$CONFIGFILE >$CONFIGFILE.tmp
-    
+
     mv -f $CONFIGFILE.tmp $CONFIGFILE
 
     db_set keyboard-configuration/store_defaults_in_debconf_db true
@@ -82,7 +68,7 @@
 if \
     [ -d /lib/debian-installer.d ] && keyboard_present
 then
-    if [ "$DISPLAY" ] && which setxkbmap >/dev/null; then
+    if [ "$DISPLAY" ] && command -v setxkbmap >/dev/null; then
 	setxkbmap -option '' -model "$model" "$layout" "$variant" "$options"
     else
 	case "`uname`" in
diff -Nru console-setup.orig/debian/preprocessor console-setup/debian/preprocessor
--- console-setup.orig/debian/preprocessor	2021-08-18 22:17:59.900444354 -0700
+++ console-setup/debian/preprocessor	2021-08-18 22:23:08.680765008 -0700
@@ -1,7 +1,7 @@
 #!/bin/sh
 set -e
 
-tmp=`tempfile`
+tmp=`mktemp console-setup.XXXXXXXXXX`
 
 mini=''
 file=''
diff -Nru console-setup.orig/Keyboard/ckbcomp-mini console-setup/Keyboard/ckbcomp-mini
--- console-setup.orig/Keyboard/ckbcomp-mini	2021-08-18 22:17:59.884444752 -0700
+++ console-setup/Keyboard/ckbcomp-mini	2021-08-18 22:45:53.239009017 -0700
@@ -39,20 +39,6 @@
 datadir=$installdir/share/console-setup
 [ -d "$datadir" ] || datadir=/usr/share/console-setup
 
-# The same as /usr/bin/which - in order to make "which" available in
-# environments where "which" does not exist
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 while [ "$*" ]; do
     case "$1" in
 	-I*)
diff -Nru console-setup.orig/setupcon console-setup/setupcon
--- console-setup.orig/setupcon	2021-08-18 22:17:59.900444354 -0700
+++ console-setup/setupcon	2021-08-18 22:33:32.013233908 -0700
@@ -37,20 +37,6 @@
 setupdir=''      # directory for --setup-dir
 SETUP=''
 
-# The same as /usr/bin/which - in order to make "which" available before
-# /usr is mounted
-which () {
-    local IFS
-    IFS=:
-    for i in $PATH; do
-	if [ -f "$i/$1" -a -x "$i/$1" ]; then
-	    echo "$i/$1"
-	    return 0
-	fi
-    done
-    return 1
-}
-
 # Create a temporary file name and set TMPFILE to its name.  Early in
 # the boot process /tmp is mounted read-only, so lets have some other
 # options...  I am not sure all non-GNU versions of mktemp understand
@@ -257,7 +243,7 @@
 test_console () {
     local ok
     ok=0
-    if which tty >/dev/null; then
+    if command -v tty >/dev/null; then
         case "`tty`" in
 	    /dev/tty[1-9]*|/dev/vc/[0-9]*|/dev/console|/dev/ttyv[0-9]*)
                 return 0
@@ -266,7 +252,7 @@
         ok=1
     fi
 
-    if which kbd_mode >/dev/null; then
+    if command -v kbd_mode >/dev/null; then
         mode="`(LC_ALL=C; export LC_ALL; kbd_mode) 2>&1`"
         mode=${mode#The keyboard is in }
         case "$mode" in
@@ -275,7 +261,7 @@
         ok=1
     fi
 
-    if which vidcontrol >/dev/null; then
+    if command -v vidcontrol >/dev/null; then
         if vidcontrol -i adapter >&- 2>&-; then
             return 0
         fi
@@ -449,7 +435,7 @@
 
 # kernel
 kernel=unknown
-if which uname >/dev/null; then
+if command -v uname >/dev/null; then
     case "`uname`" in
         *Linux*) kernel=linux ;;
         *FreeBSD*) kernel=freebsd ;;
@@ -513,7 +499,7 @@
 # CHARMAP
 if [ "$CHARMAP" = guess -o -z "$CHARMAP" ]; then
     CHARMAP=''
-    if which locale >/dev/null; then
+    if command -v locale >/dev/null; then
         CHARMAP=`locale charmap`
     fi
 fi
@@ -538,9 +524,9 @@
 if [ "$do_font" ]; then
     case "$kernel" in
         linux)
-            if which consolechars >/dev/null ; then
+            if command -v consolechars >/dev/null ; then
                 do_font=linuxct
-            elif which setfont >/dev/null ; then
+            elif command -v setfont >/dev/null ; then
                 do_font=linuxkbd
             else
                 echo "setupcon: Neither setfont nor consolechars is accessible. No font will be configured." >&2
@@ -548,7 +534,7 @@
             fi
             ;;
         freebsd)
-            if which vidcontrol >/dev/null ; then
+            if command -v vidcontrol >/dev/null ; then
                 do_font=freebsd
             else
                 echo "setupcon: vidcontrol is not accessible. No font will be configured." >&2
@@ -558,7 +544,7 @@
     esac
 fi
 # Due to bug in splashy and usplash: do not load fonts (#540314)
-if which pidof >/dev/null; then
+if command -v pidof >/dev/null; then
     if pidof splashy > /dev/null || pidof usplash > /dev/null; then
         do_font=''
     fi
@@ -654,7 +640,7 @@
         stdmap=$CHARMAP.acm.gz
         fontdir=share/consolefonts
         stdfont=$CODESET-$FONTFACE$FONTSIZE.psf.gz
-        # [A-WXYZa-wyz] is a funny way to say [A-Za-wyz].  In some locales 
+        # [A-WXYZa-wyz] is a funny way to say [A-Za-wyz].  In some locales
         # [A-Z] includes x and we don't want this.
         stdfontfallback=$CODESET-*[A-WXYZa-wyz]$FONTSIZE.psf.gz
         ;;
@@ -693,7 +679,7 @@
             [ "$FONTFILES" ] || FONTFILES=`findfile $fontdir $stdfontfallback`
             case "$FONTFILES" in
                 *[0-9]x[1-9]*.psf.gz)
-                    if which consolechars >/dev/null; then
+                    if command -v consolechars >/dev/null; then
 		        echo "\
 The consolechars utility from the \"console-tools\" package can load only fonts
 with 8 pixel width matrix.  Please install the setfont utility from the package
@@ -740,7 +726,7 @@
 if [ "$do_kbd" ]; then
     case "$kernel" in
         linux)
-            if which loadkeys >/dev/null; then
+            if command -v loadkeys >/dev/null; then
                 do_kbd=linux
             else
                 echo setupcon: loadkeys is not accessible. Keyboard will not be configured.>&2
@@ -748,7 +734,7 @@
             fi
             ;;
         freebsd)
-            if which kbdcontrol >/dev/null; then
+            if command -v kbdcontrol >/dev/null; then
                 do_kbd=freebsd
             else
                 echo setupcon: kbdcontrol is not accessible. Keyboard will not be configured.>&2
@@ -830,7 +816,7 @@
     savekbdfile="$cached"
 fi
 [ "$XKBMODEL" ] || savekbdfile=''
-if [ "$kernel" = linux ] && ! which gzip >/dev/null; then
+if [ "$kernel" = linux ] && ! command -v gzip >/dev/null; then
     savekbdfile=''
     echo setupcon: gzip is not accessible.  Will not save cached keyboard map. >&2
 fi
@@ -966,7 +952,7 @@
             ;;
         linux*)
             # this is a bit pointless as vesafb doesn't support changing mode
-            if which fbset >/dev/null; then
+            if command -v fbset >/dev/null; then
                 run plain '' fbset -a "$VIDEOMODE"
             else
                 report fbset is not installed
@@ -1114,7 +1100,7 @@
 # Unfortunately, that way the X keyboard will be damaged when
 # console-setup modifies the keyboard mode of X.
 if [ "$do_kbd" = linux ]; then
-    if which kbd_mode >/dev/null; then
+    if command -v kbd_mode >/dev/null; then
         if [ "$unicode" ]; then
             run in '' kbd_mode -u
         else
@@ -1253,7 +1239,7 @@
     tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; }
     printf "%s" "$SETUP" |
     while read -r cmd args; do
-        which "$cmd" >>$TMPFILE || true
+        command -v "$cmd" >>$TMPFILE || true
         printf "%s " "$cmd"
         fileargs "$args"
         echo
