unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mathieu Lirzin <mthl@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] gnu: rxvt-unicode: Add the terminal capability data.
Date: Wed, 09 Dec 2015 18:58:59 +0100	[thread overview]
Message-ID: <87y4d31p24.fsf@gnu.org> (raw)
In-Reply-To: 87wpsnsp8x.fsf@gnu.org

[-- Attachment #1: Type: text/plain, Size: 2301 bytes --]

ludo@gnu.org (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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-rxvt-unicode-Add-the-terminal-capability-data.patch --]
[-- Type: text/x-diff, Size: 3025 bytes --]

From eedb9ca34c5bbc973765c8bd8a17b0a42c98e427 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@gnu.org>
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


[-- Attachment #3: Type: text/plain, Size: 28 bytes --]


Thanks,

--
Mathieu Lirzin

  reply	other threads:[~2015-12-09 17:59 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-08 17:18 [PATCH] gnu: rxvt-unicode: Add the terminal capability data Mathieu Lirzin
2015-12-09  3:24 ` Leo Famulari
2015-12-09 14:12   ` Mathieu Lirzin
2015-12-09 13:52 ` Ludovic Courtès
2015-12-09 17:58   ` Mathieu Lirzin [this message]
2015-12-09 20:54     ` Ludovic Courtès
2015-12-09 21:26       ` Leo Famulari
2015-12-10  3:21         ` Mathieu Lirzin
2015-12-10  2:57       ` Mathieu Lirzin
2015-12-10  9:42         ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y4d31p24.fsf@gnu.org \
    --to=mthl@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).