guix-devel
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]