]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
ncurses: put symlinks to basic terminfo files in ncurses-terminfo-base package
authorRasmus Villemoes <ravi@prevas.dk>
Thu, 23 Jul 2026 07:40:53 +0000 (09:40 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 27 Jul 2026 17:01:07 +0000 (18:01 +0100)
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 <ravi@prevas.dk>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/ncurses/ncurses.inc

index ec265e63f234ea037ab0e51bd88684907e6fb6ab..8fff9a226f64c1ab3bff36c518e0105ff7a5c509 100644 (file)
@@ -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"