Subject: bug#64577: 29.0.92; configure on NetBSD forces unstable terminfo library

From: Valtteri Vuorikoski <[email-masked]>
Date: Wed, 12 Jul 2023 17:06:08 +0300

On Wed, Jul 12, 2023 at 04:32:39PM +0300, Eli Zaretskii wrote:
> So does the patch below fix the issue?
> 
> diff --git a/configure.ac b/configure.ac
> index 19575e8..21c396f 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -5212,7 +5212,7 @@ AC_DEFUN
>      ;;
>  
>    netbsd)
> -    if test "x$LIBS_TERMCAP" != "x-lterminfo"; then
> +    if test "x$LIBS_TERMCAP" != "x-lncurses"; then
>        TERMINFO=no
>        LIBS_TERMCAP="-ltermcap"
>      fi

It fixes the immediate problem, yes. But I don't think this special
case should stick around, since it seems relevant only to a very
ancient version of NetBSD.

I tried out the following patch and it turns out that the thing that
causes tparam1 aborts is actually TERMINFO=no:

--- a/configure.ac
+++ b/configure.ac
@@ -5184,7 +5184,7 @@ AC_DEFUN
   ##  option to use it.
   darwin) LIBS_TERMCAP="-lncurses" ;;

-  gnu*) test -z "$LIBS_TERMCAP" && LIBS_TERMCAP="-lncurses" ;;
+  gnu*|netbsd) test -z "$LIBS_TERMCAP" && LIBS_TERMCAP="-lncurses" ;;

   freebsd)
     AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
@@ -5211,13 +5211,6 @@ AC_DEFUN
     LIBS_TERMCAP=
     ;;

-  netbsd)
-    if test "x$LIBS_TERMCAP" != "x-lterminfo"; then
-      TERMINFO=no
-      LIBS_TERMCAP="-ltermcap"
-    fi
-    ;;
-
   openbsd | dragonfly) LIBS_TERMCAP="-lncurses" ;;

   ## hpux: Make sure we get select from libc rather than from libcurses

Without ncurses installed, this produces emacs linked with libterminfo
that no longer crashes with TERM=xterm-256color on NetBSD 9.3 and
shows 256 colors. With ncurses installed, libncurses is used and the
result is equally functional. Seems like pure win to me.

If users with ancient NetBSD versions experience problems with
libterminfo (that the original special case logic presumably avoided),
they can install ncurses as a workaround. 

 -Valtteri