gnu: lsh: lshd now supports X11 forwarding.

Reported by myglc2 <myglc2@gmail.com>.

* gnu/packages/lsh.scm (lsh)[inputs]: Add XAUTH.
[arguments]: Modify 'XAUTH_PROGRAM' macro in 'server_x11.c'.
master
Ludovic Courtès 2016-02-24 12:24:30 +01:00
parent 03b93ed70e
commit da35acf91d
1 changed files with 19 additions and 3 deletions

View File

@ -29,7 +29,8 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages readline)
#:use-module (gnu packages gperf)
#:use-module (gnu packages guile))
#:use-module (gnu packages guile)
#:use-module (gnu packages xorg))
(define-public liboop
(package
@ -100,7 +101,11 @@ basis for almost any application.")
("liboop" ,liboop)
("zlib" ,guix:zlib)
("gmp" ,gmp)))
("gmp" ,gmp)
;; The server (lshd) invokes xauth when X11 forwarding is requested.
;; This adds 24 MiB (or 27%) to the closure of lsh.
("xauth" ,xauth)))
(arguments
'(;; Skip the `configure' test that checks whether /dev/ptmx &
;; co. work as expected, because it relies on impurities (for
@ -128,7 +133,18 @@ basis for almost any application.")
;; Same for the 'lsh-authorize' script.
(substitute* "src/lsh-authorize"
(("=sexp-conv")
(string-append "=" sexp-conv))))
(string-append "=" sexp-conv)))
;; Tell lshd where 'xauth' lives. Another option would be to
;; hardcode "/run/current-system/profile/bin/xauth", thereby
;; reducing the closure size, but that wouldn't work on foreign
;; distros.
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* "src/server_x11.c"
(("define XAUTH_PROGRAM.*")
(string-append "define XAUTH_PROGRAM \""
(assoc-ref inputs "xauth")
"/bin/xauth\"\n")))))
;; Tests rely on $USER being set.
(setenv "USER" "guix"))))))