From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Valtteri Vuorikoski Newsgroups: gmane.emacs.bugs Subject: bug#64577: 29.0.92; configure on NetBSD forces unstable terminfo library Date: Wed, 12 Jul 2023 23:22:16 +0300 Message-ID: References: <87v8eqrxq8.fsf@notcom.org> <837cr572jt.fsf@gnu.org> <83zg415k7c.fsf@gnu.org> <83wmz55d2l.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23791"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: NeoMutt/20230517-193-0143df-dirty Cc: 64577@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jul 12 22:23:20 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qJgMp-0005tg-Dk for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 12 Jul 2023 22:23:19 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qJgMa-0002bx-F9; Wed, 12 Jul 2023 16:23:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qJgMZ-0002bp-2A for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2023 16:23:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qJgMX-0005ul-Pp for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2023 16:23:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qJgMX-0005JP-Le for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2023 16:23:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Valtteri Vuorikoski Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 12 Jul 2023 20:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64577 X-GNU-PR-Package: emacs Original-Received: via spool by 64577-submit@debbugs.gnu.org id=B64577.168919335420369 (code B ref 64577); Wed, 12 Jul 2023 20:23:01 +0000 Original-Received: (at 64577) by debbugs.gnu.org; 12 Jul 2023 20:22:34 +0000 Original-Received: from localhost ([127.0.0.1]:53020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qJgM5-0005IS-FJ for submit@debbugs.gnu.org; Wed, 12 Jul 2023 16:22:33 -0400 Original-Received: from jkusti.notcom.org ([118.27.113.153]:35390) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qJgM2-0005IH-1E for 64577@debbugs.gnu.org; Wed, 12 Jul 2023 16:22:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=notcom.org; s=jk; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject: Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=udZHtUL4u7FYSxJgfHPWwyQWTDD9zixIp/mWFx6eP1Q=; t=1689193350; x=1690057350; b=FCQ/ds1iaXRJMQ3Qhc0eBqsxrPQavoWKXSWBppBO7ulzsq6KsouZYGhVUeVLC0lvRdkrMoC4wtL sZ61YNO620l2JuJfK4kivsNFzhTuITiI0TGNVJp3CSCKjjwWIOsr8w8FZwB9dIgrvUvxKPAg63yb6 lHoLlo8sjk691XGcQLOXFWx2Ov0fKpVpzCBiHP9LJ8XdT7ZIoVog6JJudAV+7WUbL278LFWD1Q+SH lU+5rtEtK83fQAEvZYn/PX9u9HdzKCbD/ks/Pb3OBIZECtgFLdJ+JXi+MKmmlAPKZTHrBZm5ue2fG 0K6PoyIgOPH/G+RORUIoy1vRf5EGNpSsGaVQ==; Original-Received: from submission.internal (id=9cdceae8c7b5bf2d4c2c643b5341fa4197f0c084) by jkusti.notcom.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.x) (envelope-from ) id 1qJgLz-0032ej-CE; Wed, 12 Jul 2023 20:22:27 +0000 Original-Received: from a10d750d756b015054aa81d63d047a232e64e839 by sendhost.internal with local (Exim 4.x) (envelope-from ) id 1qJgLo-00554F-IM; Wed, 12 Jul 2023 23:22:16 +0300 Content-Disposition: inline In-Reply-To: <83wmz55d2l.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:264988 Archived-At: On Wed, Jul 12, 2023 at 07:06:42PM +0300, Eli Zaretskii wrote: > > 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. > > We don't want to drop support of old versions just because we can, and > we don't really know how "ancient" those ancient versions should > actually be to require this special case. We know that in May 2010 it > was TRT, but not when it stopped being TRT. Without knowing that, I'd > like to avoid removing this, at least until we hear a real problem > with it. Asking NetBSD users to install ncurses doesn't sound like a > problem to me. Can't say I'm happy about keeping the magical special case, which will result in a different thing happening than what configure prints out. But at least ncurses-having users will win and the ncurses-preferring logic will mostly bring things in line with other BSDs. The reason not much has been heard about this is probably that most users likely use packaged emacs, and the pkgsrc build system forcibly sets TERMINFO=yes if it determines that this is a NetBSD with the relevant headers available. See this package build makefile: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/editors/emacs21/Makefile.common?rev=1.21&content-type=text/x-cvsweb-markup "CPPFLAGS+=-DTERMINFO" (similarly check exists for emacsen up to 28). > That's strange, since termcap and terminfo are the same on NetBSD. > Maybe the problem is that TERMINFO=no means we don't compile > terminfo.c into Emacs, and/or also don't define TERMINFO, which could > bypass more code that's needed for terminfo? In that case, just > avoiding TERMINFO=no, even if ncurses were not found, could be another > good measure. Looks like removing the TERMINFO=no line inside the if clause has the same result as unconditionally using -lterminfo, which is to say that emacs is linked with libterminfo, uses terminfo (and not the termcap compatibility wrappers) and hence doesn't abort itself. This seems to be what effectively happens in pkgsrc-packaged emacs: TERMINFO=no is overridden and things largely proceed as if the configure special case logic didn't exist, modulo the fact that libterminfo is always used in preference to ncurses. How about this then, this way should preserve the intent of the original special casing while honoring the library selection configure ended up with: --- a/configure.ac +++ b/configure.ac @@ -5212,9 +5212,8 @@ AC_DEFUN ;; netbsd) - if test "x$LIBS_TERMCAP" != "x-lterminfo"; then + if test "x$LIBS_TERMCAP" = "x-ltermcap"; then TERMINFO=no - LIBS_TERMCAP="-ltermcap" fi ;; On ancient NetBSD (without ncurses) LIBS_TERMCAP should be detected as -ltermcap, and this will ensure that TERMINFO stays undefined (probably a no-op). On a newer system where someone actually wants to use termcap and forces LIBS_TERMCAP, this will make sure that TERMINFO is "no" even though libtermcap is a symlink to libterminfo (= only the termcap compatibility functions will be used and terminfo stuff will be ignored even though configure sees tputs() and friends). The end result should be the same binary as pkgsrc packaging has provided for years, except that on a system with ncurses installed it will be used. > > 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. > > That argument goes both ways, doesn't it? Not really. With the netbsd = gnu* version, users with NetBSD versions released in last ~10 years i.e. most NetBSD users get a good experience out of the box regardless of whether ncurses is installed, and users of ancient versions _might_ have problems without ncurses. With the LIBS_TERMCAP!=-lncurses version, everyone without ncurses gets a bad experience, assuming TERMINFO=no isn't removed. -Valtteri