From f0de9544a3f19b65e80a7cbfafd0dbe268d92ee2 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 9 Jun 2019 18:17:08 +0200 Subject: [PATCH] gnu: Add emacsy. * gnu/packages/guile-xyz.scm (emacsy): New variable. --- gnu/packages/guile-xyz.scm | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index aee908a6f5..191f32c321 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) + #:use-module (gnu packages noweb) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -75,6 +76,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages slang) #:use-module (gnu packages sqlite) + #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -2305,3 +2307,81 @@ formatting combinators specified by @uref{https://srfi.schemers.org/srfi-159/srfi-159.html, SRFI-159}. These are more expressive and flexible than the traditional @code{format} procedure.") (license license:bsd-3)))) + +(define-public emacsy + (let ((commit "7d49cc1425d5d209bdb82cac0d8ea0694b8b3784") + (revision "4")) + (package + (name "emacsy") + (version (string-append "0.1.2-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/janneke/emacsy.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0k9yns1v8zn135w60sx96nqs2bm2p2dvcvlm987hkw4lbff9ii6i")))) + (build-system gnu-build-system) + (native-inputs + `(("emacsy-webkit-gtk" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/janneke/emacsy-webkit-gtk.git") + (commit "35ded1b3e997fd779a17e0c4a2c73741718562d9"))) + (file-name (string-append "emacsy-webkit-gtk" "-" version)) + (sha256 + (base32 + "1gp0li2rbp6in926r3hrww6cnh864pp46v1din2pgmd7vzzl7kg0")))) + ("hello-emacsy" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/janneke/hello-emacsy.git") + (commit "2c117e5286a261be4ff24938f3ae1d348396c538"))) + (file-name (string-append "hello-emacsy" "-" version)) + (sha256 + (base32 + "15ykd7s8axcy8ym4v71fgal4x28fxnim0pv0jmpi3dnhizr63zqn")))) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("bzip2" ,bzip2) + ("guile" ,guile-2.2) + ("gettext" ,gnu-gettext) + ("libtool" ,libtool) + ("noweb" ,noweb) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo) + ("texlive" ,texlive))) + (propagated-inputs + `(("guile-lib" ,guile-lib) + ("guile-readline" ,guile-readline) + ("freeglut" ,freeglut) + ("gssettings-desktop-schemas" ,gsettings-desktop-schemas) + ("webkitgtk" ,webkitgtk))) + (inputs `(("guile" ,guile-2.2))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-examples + (lambda _ + (copy-recursively (assoc-ref %build-inputs "emacsy-webkit-gtk") + "example/emacsy-webkit-gtk") + (copy-recursively (assoc-ref %build-inputs "hello-emacsy") + "example/hello-emacsy"))) + (add-before 'configure 'setenv + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0")))))) + (home-page "https://github.com/shanecelis/emacsy/") + (synopsis "Embeddable GNU Emacs-like library using Guile") + (description + "Emacsy is an embeddable GNU Emacs-like library that uses GNU Guile +as extension language. Emacsy can give a C program an Emacsy feel with +keymaps, minibuffer, recordable macros, history, tab completion, major +and minor modes, etc., and can also be used as a pure Guile library. It +comes with a simple counter example using GLUT and browser examples in C +using gtk+-3 and webkitgtk.") + (license license:gpl3+))))