summaryrefslogtreecommitdiff
path: root/gnu/packages/vnc.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-07-28 23:07:26 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-10-07 10:11:11 -0400
commit447c20db7ead3052f2719157f7e70d8614743988 (patch)
treef4b946300df7ebf1449be3568d0b1e7035d783ce /gnu/packages/vnc.scm
parentff33b8698a17af3f8b079b03b83243fba4bd5d88 (diff)
downloadguix-patches-447c20db7ead3052f2719157f7e70d8614743988.tar
guix-patches-447c20db7ead3052f2719157f7e70d8614743988.tar.gz
gnu: tigervnc-server: Patch and wrap vncserver script.
* gnu/packages/vnc.scm (tigervnc-server): [phases]{patch-paths, wrap-vncserver}: New phases. [inputs]: Add font-alias, guile-3.0, util-linux and xinit.
Diffstat (limited to 'gnu/packages/vnc.scm')
-rw-r--r--gnu/packages/vnc.scm44
1 files changed, 42 insertions, 2 deletions
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 3731f63846..8bbccfb498 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -289,6 +289,31 @@ application which is needed to connect to VNC servers.")
(substitute* "tigervnc-client/unix/vncserver/tigervnc.pam"
(("pam_systemd.so")
"pam_elogind.so"))))
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "tigervnc-client/unix/vncserver/vncserver.in"
+ (("`mcookie`")
+ (format #f "`~a`" (search-input-file inputs "bin/mcookie")))
+ ;; Adjust the places where the vncserver script looks for
+ ;; X11 fonts.
+ (("'/usr/share/X11/fonts'" all)
+ (format #f "'~a', '~a', ~a"
+ "/run/current-system/profile/share/fonts/X11"
+ (string-append #$(this-package-input "font-alias")
+ "share/fonts/X11")
+ all))
+ ;; Adjust the location used to locate of the .desktop files.
+ (("/usr/share/xsessions")
+ "/run/current-system/profile/share/xsessions")
+ ;; Do not require a system-provided Xsession shell script,
+ ;; as Guix System has none. This causes the foreach loop to
+ ;; iterate an empty list (disabled).
+ (("\"/etc/X11/xinit/Xsession\", \"/etc/X11/Xsession\"")
+ "()")
+ (("if \\(not defined \\$Xsession)")
+ "if (0)")
+ (("@cmd, \\$Xsession,")
+ "@cmd,"))))
(add-before 'build 'build-tigervnc
(lambda* (#:key parallel-build? #:allow-other-keys)
(mkdir-p "tigervnc-client/build")
@@ -309,7 +334,16 @@ application which is needed to connect to VNC servers.")
(invoke "make" "-C" "tigervnc-client/build/unix" "install")))
(replace 'install
(lambda _
- (invoke "make" "install")))))))
+ (invoke "make" "install")))
+ (add-after 'install 'wrap-vncserver
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-script (search-input-file outputs "libexec/vncserver")
+ (list "PATH" 'prefix
+ (map (lambda (p)
+ (dirname (search-input-file inputs p)))
+ '("bin/uname"
+ "bin/xauth"
+ "bin/xinit"))))))))))
(native-inputs
(modify-inputs (append (package-native-inputs xorg-server)
(package-native-inputs tigervnc-client))
@@ -324,7 +358,13 @@ application which is needed to connect to VNC servers.")
(inputs
(modify-inputs (append (package-inputs xorg-server)
(package-inputs tigervnc-client))
- (prepend perl coreutils xauth)))
+ (prepend coreutils
+ font-alias
+ guile-3.0
+ perl
+ util-linux
+ xauth
+ xinit)))
(propagated-inputs
(modify-inputs (package-propagated-inputs xorg-server)
(prepend xauth)))