Build issue with ncurses?

From: David Wolfskill <david_at_catwhisker.org>
Date: Thu, 27 Jun 2024 12:29:53 UTC
I normally track FreeBSD daily, but was away from home for the first
coule of weeks of June, and am trying to get back into my usual update
cadence.

My (headless) build machine had no trouble updating:

main-n270474-d2f1f71ec8c6 (30 May) -> main-n270948-8521ea135f5b (25 June)
main-n270948-8521ea135f5b -> main-n270979-cde6642431bb (27 June)

But my secondary laptop choked on ncurses while running
main-n270474-d2f1f71ec8c6, first after updating sources to
main-n270948-8521ea135f5b, then after the update to
main-n270979-cde6642431bb.

I'm using meta-mode; I have attached a copy of the full meta file.  Here
is the part that I think is particularly relevant:

# Meta data file /common/S4/obj/usr/src/amd64.amd64/lib/ncurses/ncurses/new_pair.o.meta
CMD cc -target x86_64-unknown-freebsd15.0 --sysroot=/common/S4/obj/usr/src/amd64.amd64/tmp -B/common/S4/obj/usr/src/amd64.amd64/tmp/usr/bin  -O2 -pipe -fno-common   -D_XOPEN_SOURCE_EXTENDED -I. -I/usr/src/lib/ncurses/tinfo -I/usr/src/lib/ncurses/ncurses -I/usr/src/contrib/ncurses/include -I/usr/src/contrib/ncurses/ncurses -I/common/S4/obj/usr/src/amd64.amd64/lib/ncurses/tinfo -Wall -DNDEBUG -DHAVE_CONFIG_H -g -gz=zlib -std=gnu99 -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -Wdate-time -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member  -Qunused-arguments     -c /usr/src/contrib/ncurses/ncurses/base/new_pair.c -o new_pair.o
CMD
CWD /common/S4/obj/usr/src/amd64.amd64/lib/ncurses/ncurses
TARGET new_pair.o
OODATE /usr/src/contrib/ncurses/ncurses/base/new_pair.c
-- command output --
In file included from /usr/src/contrib/ncurses/ncurses/base/new_pair.c:40:
In file included from /usr/src/contrib/ncurses/ncurses/curses.priv.h:425:
/usr/src/contrib/ncurses/ncurses/term.priv.h:141:16: error: redefinition of 'term'
  141 | typedef struct term {                   /* describe an actual terminal */
      |                ^
./term.h:735:16: note: previous definition is here
  735 | typedef struct term {           /* describe an actual terminal */
      |                ^
In file included from /usr/src/contrib/ncurses/ncurses/base/new_pair.c:40:
In file included from /usr/src/contrib/ncurses/ncurses/curses.priv.h:425:
/usr/src/contrib/ncurses/ncurses/term.priv.h:153:3: error: typedef redefinition with different types ('struct (unnamed struct at /usr/src/contrib/ncurses/ncurses/term.priv.h:141:16)' vs 'struct term')
  153 | } TERMINAL;
      |   ^
./term.h:743:3: note: previous definition is here
  743 | } TERMINAL;
      |   ^
In file included from /usr/src/contrib/ncurses/ncurses/base/new_pair.c:40:
/usr/src/contrib/ncurses/ncurses/curses.priv.h:1248:3: error: redefinition of typedef 'SCREEN' is a C11 feature [-Werror,-Wtypedef-redefinition]
 1248 | } SCREEN;
      |   ^
./curses.h:394:24: note: previous definition is here
  394 | typedef struct screen  SCREEN;
      |                        ^
3 errors generated.


I don't believe I have anything "suspect" in /etc/{src,make}*.conf:

g1-48(15.0-C)[22] foreach f ( /etc/{src,make}*.conf )
foreach? echo "${f}:" && grep -v '^#' $f; echo "==============="; echo ""
foreach? end
/etc/src-env.conf:
WITH_META_MODE=yes
===============

/etc/src.conf:
KERNCONF=CANARY
PORTS_MODULES+=x11/nvidia-driver
PORTS_MODULES+=graphics/drm-61-kmod
.MAKE.META.IGNORE_PATHS += /usr/local/etc/libmap.d
IWN_DEBUG=1
IEEE80211_DEBUG=1
BATCH_DELETE_OLD_FILES=1
WITHOUT_REPRODUCIBLE_BUILD=yes
WITHOUT_LLVM_TARGET_ALL=yes
===============

/etc/make.conf:
NET_SNMP_SYS_CONTACT="david@catwhisker.org"
NET_SNMP_SYS_LOCATION="variable"
NET_SNMP_LOGFILE=/var/log/snmpd.log
NET_SNMP_PERSISTENTDIR=/var/net-snmp
EXTRA_PATCH_TREE=/usr/local/port_patches
WITH_BSD_JDK=TRUE
WITHOUT_RUNTIME_CPUDETECTION=   YES
WITHOUT_CJK=    YES
NO_SUID_XSERVER=YES
INSTALL_AS_NCFTP=yes
OPTIONS_SET=OPTIMIZED_CFLAGS
FORCE_PKG_REGISTER=    YES
PKG_NOCOMPRESS=1
SENDMAIL_MC=/etc/mail/laptop.mc

.if ${.CURDIR:M*/graphics/drm-*kmod}
DISABLE_CONFLICTS=      YES
.endif
===============

May I have the use of a clue, please?

Thanks!

Peace,
david
-- 
David H. Wolfskill                              david@catwhisker.org
In a collision, you don't get to choose which aspects of Physics apply.

See https://www.catwhisker.org/~david/publickey.gpg for my public key.