From 3d11114d229035440b49dccd964a2efa7ad5874f Mon Sep 17 00:00:00 2001 From: Joseph LaFreniere Date: Mon, 6 Jan 2020 20:56:35 -0600 Subject: gnu: Add emacs-vterm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-vterm): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7a561c77f3..9870964ec0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -46,7 +46,7 @@ ;;; Copyright © 2019 Brian Leung ;;; Copyright © 2019 mikadoZero ;;; Copyright © 2019 Gabriel Hondet -;;; Copyright © 2019 LaFreniere, Joseph +;;; Copyright © 2019, 2020 Joseph LaFreniere ;;; Copyright © 2019 Amar Singh ;;; Copyright © 2019 Baptiste Strazzulla ;;; Copyright © 2019 Giacomo Leidi @@ -105,6 +105,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages telephony) + #:use-module (gnu packages terminals) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tcl) @@ -17399,6 +17400,73 @@ next, volume) and display and control the current playlist as well as your stored playlists.") (license license:gpl3+))) +(define-public emacs-vterm + (let ((version "0") + (revision "1") + (commit "7d7381fa8104b55b70148cf147523d9ab7f01fcd")) + (package + (name "emacs-vterm") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/akermu/emacs-libvterm.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04a2jlhmr20ipgzpnba3yryw3ly7qdxjgaw10dwn9wxy1yqmapz1")))) + (build-system emacs-build-system) + (arguments + `(#:modules ((guix build emacs-build-system) + ((guix build cmake-build-system) #:prefix cmake:) + (guix build emacs-utils) + (guix build utils)) + #:imported-modules (,@%emacs-build-system-modules + (guix build cmake-build-system)) + #:phases + (modify-phases %standard-phases + (add-before 'add-source-to-load-path 'remove-vterm-module-make + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove the Emacs Lisp file. + (delete-file "vterm-module-make.el") + ;; Remove references to the removed file. + (make-file-writable "vterm.el") + (emacs-substitute-sexps "vterm.el" + ("(or (require 'vterm-module nil t)" + `(module-load + ,(string-append (assoc-ref outputs "out") + "/lib/vterm-module.so")))) + #t)) + (add-after 'build 'configure + ;; Run cmake. + (lambda* (#:key outputs #:allow-other-keys) + ((assoc-ref cmake:%standard-phases 'configure) + #:outputs outputs + #:out-of-source? #f + #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON")) + #t)) + (add-after 'configure 'make + ;; Run make. + (lambda* (#:key (make-flags '()) outputs #:allow-other-keys) + ;; Compile the shared object file. + (apply invoke "make" "all" make-flags) + ;; Move the file into /lib. + (install-file + "vterm-module.so" + (string-append (assoc-ref outputs "out") "/lib")) + #t))) + #:tests? #f)) + (native-inputs + `(("cmake" ,cmake-minimal) + ("libtool" ,libtool) + ("libvterm" ,libvterm))) + (home-page "https://github.com/akermu/emacs-libvterm") + (synopsis "Emacs libvterm integration") + (description "This package implements a bridge to @code{libvterm} to +display a terminal in an Emacs buffer.") + (license license:gpl3+)))) + (define-public emacs-simple-mpc ;; There have been no releases. (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2") -- cgit v1.2.3