diff options
author | Marius Bakke <marius@gnu.org> | 2020-11-27 20:51:13 +0100 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-11-27 21:33:59 +0100 |
commit | 3bbe2806bf11f6e95be42b1a21d79bd557f68d0b (patch) | |
tree | 3d1aa570c3230ac9d8d55f7f9ea008007210fe39 | |
parent | 1807632393d0723f3085c457517965c32715717a (diff) | |
download | guix-3bbe2806bf11f6e95be42b1a21d79bd557f68d0b.tar guix-3bbe2806bf11f6e95be42b1a21d79bd557f68d0b.tar.gz |
gnu: alacritty: Embed absolute references to required libraries.
* gnu/packages/terminals.scm (alacritty)[arguments]: Rename phase
"patch-glutin-libgl-path" to "add-absolute-library-references". Patch in
absolute references to LIBXKBCOMMON and WAYLAND libraries. Remove
LD_LIBRARY_PATH wrapper.
-rw-r--r-- | gnu/packages/terminals.scm | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index c9d57bee67..f6ad90024b 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1223,18 +1224,52 @@ made by suckless.") ("rust-winapi" ,rust-winapi-0.3)) #:phases (modify-phases %standard-phases - (add-after 'configure 'patch-glutin-libgl-path + (add-after 'configure 'add-absolute-library-references (lambda* (#:key inputs cargo-inputs vendor-dir #:allow-other-keys) (let* ((glutin-name ,(package-name rust-glutin-0.22)) (glutin-version ,(package-version rust-glutin-0.22)) - (src-api - (string-append - glutin-name "-" glutin-version ".tar.gz/src/api/")) + (glutin-api (string-append glutin-name "-" glutin-version + ".tar.gz/src/api/")) + (smithay-client-toolkit-name + ,(package-name rust-smithay-client-toolkit-0.6)) + (smithay-client-toolkit-version + ,(package-version rust-smithay-client-toolkit-0.6)) + (smithay-client-toolkit-src + (string-append smithay-client-toolkit-name "-" + smithay-client-toolkit-version ".tar.gz/src")) + (wayland-sys-name ,(package-name rust-wayland-sys-0.23)) + (wayland-sys-version ,(package-version rust-wayland-sys-0.23)) + (wayland-sys-src (string-append wayland-sys-name "-" + wayland-sys-version + ".tar.gz/src")) + (libxkbcommon (assoc-ref inputs "libxkbcommon")) + (libwayland (assoc-ref inputs "wayland")) (mesa (assoc-ref inputs "mesa"))) - (substitute* (string-append vendor-dir "/" src-api "glx/mod.rs") + (substitute* (string-append vendor-dir "/" glutin-api "glx/mod.rs") (("libGL.so") (string-append mesa "/lib/libGL.so"))) - (substitute* (string-append vendor-dir "/" src-api "egl/mod.rs") + (substitute* (string-append vendor-dir "/" glutin-api "egl/mod.rs") (("libEGL.so") (string-append mesa "/lib/libEGL.so"))) + (substitute* (string-append vendor-dir "/" + smithay-client-toolkit-src + "/keyboard/ffi.rs") + (("libxkbcommon\\.so") + (string-append libxkbcommon "/lib/libxkbcommon.so"))) + (substitute* (string-append vendor-dir "/" wayland-sys-src + "/server.rs") + (("libwayland-server\\.so") + (string-append libwayland "/lib/libwayland-server.so"))) + (substitute* (string-append vendor-dir "/" wayland-sys-src + "/cursor.rs") + (("libwayland-cursor\\.so") + (string-append libwayland "/lib/libwayland-cursor.so"))) + (substitute* (string-append vendor-dir "/" wayland-sys-src + "/egl.rs") + (("libwayland-egl\\.so") + (string-append libwayland "/lib/libwayland-egl.so"))) + (substitute* (string-append vendor-dir "/" wayland-sys-src + "/client.rs") + (("libwayland-client\\.so") + (string-append libwayland "/lib/libwayland-client.so"))) #t))) (add-after 'configure 'remove-alacritty-vendor (lambda* (#:key vendor-dir #:allow-other-keys) @@ -1254,15 +1289,8 @@ made by suckless.") (man (string-append share "/man/man1")) (alacritty-bin "target/release/alacritty")) - ;; Install and wrap the binary. + ;; Install the executable. (install-file alacritty-bin bin) - (wrap-program (string-append bin "/alacritty") - ;; Both libraries are dlopen()d by cargo dependencies above - ;; when running Alacritty on pure Wayland. - ;; XXX Find out how to patch these at the source. - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append (assoc-ref inputs "libxkbcommon") "/lib:" - (assoc-ref inputs "wayland") "/lib")))) ;; Install man pages. (mkdir-p man) |