From: Rasmus Villemoes Date: Thu, 23 Jul 2026 07:40:53 +0000 (+0200) Subject: ncurses: put symlinks to basic terminfo files in ncurses-terminfo-base package X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=9aee6b23a909de650af953307bbcc1fb739bdadb;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git ncurses: put symlinks to basic terminfo files in ncurses-terminfo-base package With only the ncurses-terminfo-base package installed (i.e. not the full ncurses-terminfo), systemd prints Terminfo xterm-256color not found for /dev/console That is despite 'xterm-256color' being one of those basic terminfo files that are manually split off and into the terminfo-base package, and placed under /etc/terminfo/. The reason is that systemd only looks in /usr/share/terminfo (see their have_terminfo_file() in src/basic/terminal-util.c). Make sure that applications that only look in /usr/share/terminfo do find the basic terminfo files by packaging the symlinks along with the pointed-to files. Signed-off-by: Rasmus Villemoes Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc index ec265e63f23..8fff9a226f6 100644 --- a/meta/recipes-core/ncurses/ncurses.inc +++ b/meta/recipes-core/ncurses/ncurses.inc @@ -161,6 +161,9 @@ _install_cfgs = "\ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \ " +TERMINFO_BASE = "alacritty ansi console dumb linux rxvt screen screen-256color sun \ + tmux tmux-256color vt52 vt100 vt102 vt200 vt220 xterm-color xterm-xfree86 xterm-256color" + do_install() { # Order of installation is important; widec installs a 'curses.h' # header with more definitions and must be installed last hence. @@ -182,7 +185,7 @@ do_install() { # include some basic terminfo files # stolen ;) from gentoo and modified a bit - for x in alacritty ansi console dumb linux rxvt screen screen-256color sun tmux tmux-256color vt52 vt100 vt102 vt200 vt220 xterm-color xterm-xfree86 xterm-256color + for x in ${TERMINFO_BASE} do local termfile="$(find "${D}${datadir}/terminfo/" -name "${x}" 2>/dev/null)" local basedir="$(basename $(dirname "${termfile}"))" @@ -309,6 +312,7 @@ FILES:${PN}-terminfo = "\ FILES:${PN}-terminfo-base = "\ ${sysconfdir}/terminfo \ + ${@' '.join(map(lambda x: '${datadir}/terminfo/'+x[0]+'/'+x, '${TERMINFO_BASE}'.split()))} \ " RSUGGESTS:${PN}-libtinfo = "${PN}-terminfo"