diff mbox series

[1/2] ncurses: put symlinks to basic terminfo files in ncurses-terminfo-base package

Message ID 20260723074054.2125126-1-ravi@prevas.dk
State Under Review
Headers show
Series [1/2] ncurses: put symlinks to basic terminfo files in ncurses-terminfo-base package | expand

Commit Message

Rasmus Villemoes July 23, 2026, 7:40 a.m. UTC
From: Rasmus Villemoes <ravi@prevas.dk>

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>
---
 meta/recipes-core/ncurses/ncurses.inc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index ec265e63f2..8fff9a226f 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"