NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: misc/59965 (terminfo(5): missing rxvt-unicode)



> Date: Thu, 12 Feb 2026 17:28:20 +0000
> From: Roy Marples <roy%marples.name@localhost>
> 
> OK, so I have some local patches that work great for the following:
> 
> mkdir -p /usr/pkg/share/terminfo
> tic -x -o /usr/pkg/share/terminfo rxvt-unicode
> 
> If the path to -o is a directory then NetBSD's tic will work similar
> to ncurses and spit our r/rxvt-unicode.cdb libterminfo as been
> adjusted to pickup /usr/pkg/share/terminfo if $TERMINFO_DIRS is not
> supplied.
> 
> This then allows us to adjust pkgsrc to adopt tic as a tool and
> depend on it accordingly.  rxvt-unicode can then use the tic tool
> and pass the terminfo definitions to it.

Thanks!  Can you share the patches?

Let me see if I understand correctly what you mean:

1. rxvt-unicode will be extended with an INSTALL script that will
   cause the following command to be run at package installation time
   (pkg_add):

	tic -x -o ${PREFIX}/share/terminfo \
	    ${PREFIX}/share/examples/rxvt-unicode/rxvt-unicode.terminfo

   => So ${PREFIX}/share/terminfo is a cdb file, not a source file?
      Should it be called ${PREFIX}/share/terminfo.cdb, like we have
      /usr/share/misc/terminfo and /usr/share/misc/terminfo.cdb?

   => And presumably other packages providing terminfo descriptions
      will do something similar, so that ${PREFIX}/share/terminfo
      takes the union of all of them?

   => Ideally, it would be a single command line we can run to gather
      all packages' installed terminfo files -- that way, after
      installing a _batch_ of packages, we can run a single tic
      invocation to generate the .cdb file in O(#packages) time,
      instead of running it once for each package taking
      O(#packages^2) time.

      (pkg_add(8) doesn't currently have a mechanism to do this, but
      there's a strong need for it to grow such a mechanism, e.g. for
      TeX packages to run mktexlsr or regenerate font databases, and I
      have a plan implement it.)

2. Once libterminfo is patched, applications linked against
   libterminfo will automatically search for terminfo entries in
   either:

	(a) $TERMINFO, if it is set; or
	(b) $TERMCAP, if it is set; or
	(c) the first path with a match in $TERMINFO_DIRS,
	    colon-separated; or
	(d) the first path with a match in:

		~/.terminfo.cdb
		~/.terminfo
		/usr/share/misc/terminfo.cdb
		/usr/share/misc/terminfo
		/usr/pkg/share/terminfo.cdb (?)
		/usr/pkg/share/terminfo

I wonder whether we should have something like a _single_
/var/db/terminfo.cdb (and maybe terminfo.cdb), populated by a list of
sources, like /etc/man.conf's _default list for populating
/var/db/man.db or /etc/ssl/certs.conf's path list for populating
/etc/ssl/certs.  That way:

(a) we don't have /usr/pkg baked into libterminfo.so (e.g., mine will
    be in /pkg/20xxQy), but
(b) we keep the logic for actually using the database simple, and
(c) we can easily take the union of various inputs --
    /usr/share/misc/terminfo, /opt/pkg/share/examples/rxvt-unicode,
    whatever.

But maybe this is too much indirection.

> Once done, all you would have to do is pkg_add rxvt-unicode to get
> the terminfo definitions added to the base system automatically.
> Which just saves you the step of following the existing package
> message of adding it yourself ;)

There's one more step: the terminfo description needs to be installed
on _remote_ hosts, which don't have anything graphical in them.  So
ideally we would have a separate rxvt-unicode-terminfo package that
doesn't pull in X the way the rxvt-unicode package does.

> Would this satisfy this issue?

Well, I was hoping we could just ship a rxvt-terminfo description in
NetBSD out of the box without having to install any packages!  But
this is good too -- we should, after all, have a way to install
packages for new terminfo descriptions and have everything in the
system just work with them.


Home | Main Index | Thread Index | Old Index