From 06223ab2ed07b3fbfb2dfd95aa0a5fce1c44baf9 Mon Sep 17 00:00:00 2001 From: Joseph LaFreniere Date: Mon, 6 Jan 2020 20:56:35 -0600 Subject: [PATCH] gnu: Add emacs-vterm. * gnu/packages/emacs-xyz.scm (emacs-vterm): New variable. --- gnu/packages/emacs-xyz.scm | 67 +++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0559f0c7cc..9a0f08e16a 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) @@ -17401,6 +17402,70 @@ 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")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file "vterm-module-make.el") + (substitute* "vterm.el" + (((string-append "\\(or \\(require 'vterm-module nil t\\)\n" + "^.*\\(and \\(require 'vterm-module-make\\)\n" + "^.*\\(require 'vterm-module\\)\\)\\)")) + "(module-load \"vterm-module.so)")) + (make-file-writable "vterm.el") + #t)))) + (build-system emacs-build-system) + (arguments + `(#:modules ((guix build emacs-build-system) + ((guix build cmake-build-system) #:prefix cmake:) + (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 'configure + (lambda* (#:key outputs #:allow-other-keys) + ((assoc-ref cmake:%standard-phases 'configure) + #:outputs outputs + #:out-of-source? #f + #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON")))) + (add-before 'install 'make + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (apply invoke "make" "all" make-flags) + #t)) + (add-before 'make-autoloads 'move-el + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (site-lisp (string-append out "/share/emacs/site-lisp"))) + (mkdir-p site-lisp) + (copy-file "vterm.el" (string-append site-lisp "/vterm.el")) + (copy-file "vterm-module.so" (string-append site-lisp "/vterm-module.so")) + #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") -- 2.24.1