[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: rxvt-unicode: Add the terminal capability data.
From: |
Mathieu Lirzin |
Subject: |
Re: [PATCH] gnu: rxvt-unicode: Add the terminal capability data. |
Date: |
Wed, 09 Dec 2015 18:58:59 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> Otherwise LGTM. It’s great that you fixed this! People had reported
> the issue on IRC, so that’ll make them happy! :-)
I think this is only a partial fix. to launch emacsclient I still need
to do this:
TERMINFO="$HOME/.guix-profile/share/terminfo" emacsclient --tty foo
in terminfo(5), we can read this:
--8<---------------cut here---------------start------------->8---
Fetching Compiled Descriptions
The ncurses library searches for terminal descriptions in several
places. It uses only the first description found. The library has a
compiled-in list of places to search which can be overridden by envi‐
ronment variables. Before starting to search, ncurses eliminates
duplicates in its search list.
· If the environment variable TERMINFO is set, it is interpreted as
the pathname of a directory containing the compiled description you
are working on. Only that directory is searched.
· If TERMINFO is not set, ncurses will instead look in the directory
$HOME/.terminfo for a compiled description.
· Next, if the environment variable TERMINFO_DIRS is set, ncurses
will interpret the contents of that variable as a list of colon-
separated directories (or database files) to be searched.
An empty directory name (i.e., if the variable begins or ends with
a colon, or contains adjacent colons) is interpreted as the system
location /etc/terminfo.
· Finally, ncurses searches these compiled-in locations:
· a list of directories (no default value), and
· the system terminfo directory, /etc/terminfo (the compiled-in
default).
--8<---------------cut here---------------end--------------->8---
I suppose that "system terminfo directory" is set to
/gnu/store/...-ncurses-6.0 and IIUC correctly this is the only place
automatically searched. What about adding TERMINFO_DIRS in
"$HOME/.guix-profile/etc/profile"? I think TERMINFO_DIRS is more
appropriate than TERMINFO because it let the possibility for non-GuixSD
users to have multiple directories in it.
Here is an updated patch with my proposal:
>From eedb9ca34c5bbc973765c8bd8a17b0a42c98e427 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <address@hidden>
Date: Sun, 6 Dec 2015 21:58:03 +0100
Subject: [PATCH] gnu: rxvt-unicode: Add the terminal capability data.
This sets the destination when installing the necessary terminal
capability data, which are not provided by ncurses. See
https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
* gnu/packages/xdisorg.scm (rxvt-unicode)[native-inputs]: Add ncurses.
[arguments]: Set the destination of the terminfo files.
[native-search-path]: New field. Make them automatically available to
the user.
---
gnu/packages/xdisorg.scm | 33 +++++++++++++++++++++------------
1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 4b5308c..ab48b2a 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -40,6 +40,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome) ;for libgudev
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages linux)
@@ -529,24 +530,32 @@ compact configuration syntax.")
(package
(name "rxvt-unicode")
(version "9.21")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://dist.schmorp.de/rxvt-unicode/"
- name "-"
- version
- ".tar.bz2"))
- (sha256
- (base32
- "0swmi308v5yxsddrdhvi4cch88k2bbs2nffpl5j5m2f55gbhw9vm"))))
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://dist.schmorp.de/rxvt-unicode/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0swmi308v5yxsddrdhvi4cch88k2bbs2nffpl5j5m2f55gbhw9vm"))))
(build-system gnu-build-system)
+ (arguments
+ ;; This sets the destination when installing the necessary terminal
+ ;; capability data, which are not provided by ncurses. See
+ ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
+ '(#:make-flags (list (string-append "TERMINFO="
+ (assoc-ref %outputs "out")
+ "/share/terminfo"))))
(inputs
`(("libXft" ,libxft)
("libX11" ,libx11)))
(native-inputs
- `(("perl" ,perl)
+ `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
+ ("perl" ,perl)
("pkg-config" ,pkg-config)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "TERMINFO_DIRS")
+ (files '("share/terminfo")))))
(home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
(synopsis "Rxvt clone with XFT and unicode support")
(description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
--
2.6.3
Thanks,
--
Mathieu Lirzin