Subject: Re: bug#64698: 29.0.92; on netbsd 9.3, gmake and "gmake bootstrap" fail to proceed

From: Valtteri Vuorikoski <[email-masked]>
Date: Fri, 21 Jul 2023 13:13:36 +0300

On Thu, Jul 20, 2023 at 07:12:43PM +0300, Eli Zaretskii wrote:
> > Building emacs with sound enabled but alsa-lib _not_ installed seems
> > to work (= compiles and starts) by using the system OSS library. Since
> > Emacs's audio needs are modest, it may be better to use "bsd-ossaudio"
> > on NetBSD if --with-sound=yes. AFAICT "ALSA" on NetBSD is just a proxy
> > for the native audio system anyway.
> > 
> > The other option is to try and use ALSA if --with-sound=yes, but
> > #ifdef out the ESTRPIPE branch if ESTRPIPE is not defined.
> > 
> > Personally I'd go with the default-to-ossaudio option, since pulling in
> > alsa libraries introduces a pkgsrc dependency into the binary and doesn't
> > seem like it provides a lot of benefit. I'm not quite sure what's the
> > best way to convince configure.ac to act like this, but I can test
> > patches at least on a compiles/doesn't-compile level.
> 
> Thanks.  I went with the #ifdef approach on the release branch, since
> it's simpler and therefore safer.
> 
> Patches are welcome for preferring bsd-ossaudio on NetBSD.

If you want to apply it for -30, this basically implements the
suggestion that was already dnl'd in configure.ac. Emacs will end up
using ossaudio even if the alsa-lib pkgsrc package is installed.

--- a/configure.ac
+++ b/configure.ac
@@ -1797,8 +1797,10 @@ AC_DEFUN
     AC_CHECK_LIB([ossaudio], [_oss_ioctl], [LIBSOUND=-lossaudio], [LIBSOUND=])
     test "${with_sound}" = "bsd-ossaudio" && test -z "$LIBSOUND" && \
       AC_MSG_ERROR([bsd-ossaudio sound support requested but not found.])
-    dnl FIXME?  If we did find ossaudio, should we set with_sound=bsd-ossaudio?
-    dnl Traditionally, we go on to check for alsa too.  Does that make sense?
+    # On NetBSD use the system audio library instead of potentially switching
+    # to ALSA later on, as ALSA on NetBSD appears to just wrap OSS.
+    test "${with_sound}" = "yes" && test "$LIBSOUND" = "-lossaudio" && \
+      with_sound="bsd-ossaudio"
   fi
   AC_SUBST([LIBSOUND])

The emacs28 pkgsrc package doesn't set any sound-related configure
flags. I assume they're building binary packages on an alsa-free
system and have been happy with the result (= -lossaudio is used
because no alsa).

People who want alsa should be able to still get it with
--with-sound=alsa.

 - Valtteri