Re: git: 8cfbeb56aa16 - main - bsdinstall services: Improve mouse configuration

From: Jessica Clarke <jrtc27_at_freebsd.org>
Date: Thu, 06 Oct 2022 20:38:34 UTC
On 21 May 2022, at 15:42, Alfonso S. Siciliano <asiciliano@FreeBSD.org> wrote:
> 
> The branch main has been updated by asiciliano:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=8cfbeb56aa160de1ea4f492abeb3aa029e84269f
> 
> commit 8cfbeb56aa160de1ea4f492abeb3aa029e84269f
> Author:     Alfonso S. Siciliano <asiciliano@FreeBSD.org>
> AuthorDate: 2022-05-21 14:37:53 +0000
> Commit:     Alfonso S. Siciliano <asiciliano@FreeBSD.org>
> CommitDate: 2022-05-21 14:42:23 +0000
> 
>    bsdinstall services: Improve mouse configuration
> 
>    bsdinstall(8) has an option to enable moused support.
>    However, if it is not selected, moused is still started
>    through the configuration of nondefault devices.
>    So, automatically add the moused_nondefault_enable="NO"
>    setting to rc.conf unless moused support is selected.
> 
>    PR:                     227999
>    Reported by:            bcran
>    Reviewed by:            bapt
>    Differential Revision:  https://reviews.freebsd.org/D35193

I question the wisdom of this change. The text specifically says “PS/2
mouse pointer”, because moused_enable controls only the default mouse,
which rc.conf sets to /dev/psm0. Turning this option on or off would
therefore affect specifically the PS/2 mouse, precisely as described in
the dialog menu entry. USB mice would always remain enabled.

However, now, leaving the explicitly-PS/2 mouse option disabled *also*
disables non-default, i.e. USB, mice. Moreover, if you go and enable
the option so USB mice work, PS/2 mice are always enabled, but you may
not have a /dev/psm0. You may even be on an architecture where PS/2
does not exist; atkbdc, and thus psm, only exists for x86. This means
that, in those cases, enabling the option gives an error during boot
because /dev/psm0 doesn’t exist.

I can understand that some people want to turn off console mouse
support completely; however, with the current way moused works, that
cannot just be a single option that governs both moused_enable and
moused_nondefault_enable.

Jess

> ---
> usr.sbin/bsdinstall/scripts/services | 6 ++++++
> 1 file changed, 6 insertions(+)
> 
> diff --git a/usr.sbin/bsdinstall/scripts/services b/usr.sbin/bsdinstall/scripts/services
> index f9141a523a31..1ac69fa63b2d 100755
> --- a/usr.sbin/bsdinstall/scripts/services
> +++ b/usr.sbin/bsdinstall/scripts/services
> @@ -61,11 +61,17 @@ if [ $retval -ne $BSDDIALOG_OK ]; then
> fi
> 
> havedump=
> +havemouse=
> for daemon in $DAEMONS; do
> 	[ "$daemon" = "dumpdev" ] && havedump=1 continue
> +	[ "$daemon" = "moused" ] && havemouse=1
> 	echo ${daemon}_enable=\"YES\" >> $BSDINSTALL_TMPETC/rc.conf.services
> done
> 
> +if [ ! "$havemouse" ]; then
> +	echo moused_nondefault_enable=\"NO\" >> $BSDINSTALL_TMPETC/rc.conf.services
> +fi
> +
> echo '# Set dumpdev to "AUTO" to enable crash dumps, "NO"' \
>      'to disable' >> $BSDINSTALL_TMPETC/rc.conf.services
> if [ "$havedump" ]; then