From: Klemens Nanni Subject: installer: default to IPv6 autoconf if IPv4 is not configured To: OpenBSD tech Date: Fri, 14 Nov 2025 16:14:06 +0000 When you opt out of IPv4, the only sane default for IPv6 becomes 'autoconf' as we cannot magically guess an address and 'none' means no network at all, which is equivalent to not configuring the interface in the first place: Available network interfaces are: vio0 vlan0. Network interface to configure? (name, lladdr, '?', or 'done') [vio0] IPv4 address for vio0? (or 'autoconf' or 'none') [autoconf] none -IPv6 address for vio0? (or 'autoconf' or 'none') [none] +IPv6 address for vio0? (or 'autoconf' or 'none') [autoconf] The diff is trivial and the result is typing convenience for installs (upgrades don't run these questions) in IPv6-mostly or -only networks. Feedback? OK? Index: install.sub =================================================================== RCS file: /cvs/src/distrib/miniroot/install.sub,v diff -u -p -U9 -r1.1280 install.sub --- install.sub 1 Nov 2025 12:54:17 -0000 1.1280 +++ install.sub 14 Nov 2025 15:34:26 -0000 @@ -1101,36 +1101,38 @@ v4_config() { while :; do ask_until "IPv4 address for $_if? (or 'autoconf' or 'none')" \ "${_addr:-autoconf}" case $resp in none) return ;; a|autoconf|dhcp) dhcp_request $_if echo "inet autoconf" >>$_hn + USES_IPV4=true return ;; esac _newaddr=$resp # Ask for the netmask if the user did not use CIDR notation. if [[ $_newaddr == */* ]]; then ifconfig $_if $_newaddr up else ask_until "Netmask for $_if?" "${_mask:-255.255.255.0}" ifconfig $_if $_newaddr netmask $resp fi set -- $(v4_info $_if) if [[ -n $2 ]]; then echo "inet $2 $3" >>$_hn add_hostent "$2" "$_name" + USES_IPV4=true return fi $AI && exit 1 done } # Obtain and output the inet6 information related to interface $1. # \n [\n] @@ -1215,19 +1217,19 @@ v6_defroute() { # unless he chooses 'autoconf'. v6_config() { local _if=$1 _name=$2 _hn=$3 _addr _newaddr _prefixlen ifconfig lo0 inet6 >/dev/null 2>&1 || return # Preset the default answers by preserving possibly existing # configuration from previous runs. set -- $(v6_info $_if) - if [[ $1 == *AUTOCONF6* ]]; then + if [[ $1 == *AUTOCONF6* ]] || ! $USES_IPV4; then _addr=autoconf elif [[ -n $2 ]]; then _addr=$2 _prefixlen=$3 fi # Nuke existing inet6 configuration. ifconfig $_if -inet6 @@ -3657,18 +3659,19 @@ HTTP_LIST=/tmp/i/httplist HTTP_SEC=/tmp/i/httpsec INSTALL_METHOD= NIFS=0 export PS1="$MODE# " PUB_KEY=/etc/signify/openbsd-${VERSION}-base.pub ROOTDEV= ROOTDISK= SETDIR="$VNAME/$ARCH" UPGRADE_BSDRD=false +USES_IPV4=false V4_AUTOCONF=false V6_AUTOCONF=false WLANLIST=/tmp/i/wlanlist # Are we in a real release, or a snapshot? If this is a snapshot # install media, default us to a snapshot directory. HTTP_SETDIR=$SETDIR set -- $(scan_dmesg "/^OpenBSD $VNAME\([^ ]*\).*$/s//\1/p") [[ $1 == -!(stable) ]] && HTTP_SETDIR=snapshots/$ARCH