From 9b11eee955fe788af45c376fb595c259fc4f9c52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Jan 2017 15:40:15 +0100 Subject: gnu: Add neovim. * gnu/packages/vim.scm (neovim): New variable. --- gnu/packages/vim.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 527ce7e8ae..1b8b962d7c 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 ng0 +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,18 +23,23 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) ; For GNU hostname #:use-module (gnu packages attr) + #:use-module (gnu packages base) #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gperf) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages jemalloc) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) @@ -41,8 +47,10 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ruby) + #:use-module (gnu packages serialization) #:use-module (gnu packages shells) #:use-module (gnu packages tcl) + #:use-module (gnu packages terminals) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -149,6 +157,78 @@ configuration files.") ("tcl" ,tcl) ,@(package-inputs vim))))) +(define-public neovim + (package + (name "neovim") + (version "0.1.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/neovim/neovim/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0zjbpc4rhv5bcr353xqnbrc36zjvn7qvh8xf6s7n1bdi3788by6q")))) + (build-system cmake-build-system) + (arguments + `(#:modules ((srfi srfi-26) + (guix build cmake-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-lua-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((lua-version "5.2") + (lua-cpath-spec + (lambda (prefix) + (let ((path (string-append prefix "/lib/lua/" lua-version))) + (string-append path "/?.so;" path "/?/?.so")))) + (lua-path-spec + (lambda (prefix) + (let ((path (string-append prefix "/share/lua/" lua-version))) + (string-append path "/?.lua;" path "/?/?.lua")))) + (lua-inputs (map (cute assoc-ref %build-inputs <>) + '("lua" + "lua-lpeg" + "lua-bitop" + "lua-libmpack")))) + (setenv "LUA_PATH" + (string-join (map lua-path-spec lua-inputs) ";")) + (setenv "LUA_CPATH" + (string-join (map lua-cpath-spec lua-inputs) ";")) + #t)))))) + (inputs + `(("libuv" ,libuv) + ("msgpack" ,msgpack) + ("libtermkey" ,libtermkey) + ("libvterm" ,libvterm) + ("unibilium" ,unibilium) + ("jemalloc" ,jemalloc) + ("libiconv" ,libiconv) + ("lua" ,lua-5.2) + ("lua-lpeg" ,lua5.2-lpeg) + ("lua-bitop" ,lua5.2-bitop) + ("lua-libmpack" ,lua5.2-libmpack))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) + ("gperf" ,gperf))) + (home-page "http://neovim.io") + (synopsis "Fork of vim focused on extensibility and agility") + (description "Neovim is a project that seeks to aggressively +refactor Vim in order to: + +@itemize +@item Simplify maintenance and encourage contributions +@item Split the work between multiple developers +@item Enable advanced external UIs without modifications to the core +@item Improve extensibility with a new plugin architecture +@end itemize\n") + ;; Neovim is licensed under the terms of the Apache 2.0 license, + ;; except for parts that were contributed under the Vim license. + (license (list license:asl2.0 license:vim)))) + (define-public vifm (package (name "vifm") -- cgit v1.2.3