gnu: Add neovim.

* gnu/packages/vim.scm (neovim): New variable.
This commit is contained in:
Ricardo Wurmus 2017-01-24 15:40:15 +01:00 committed by Ricardo Wurmus
parent d9ed1779b8
commit 9b11eee955
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 80 additions and 0 deletions

View File

@ -2,6 +2,7 @@
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,18 +23,23 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
#:use-module (gnu packages admin) ; For GNU hostname #:use-module (gnu packages admin) ; For GNU hostname
#:use-module (gnu packages attr) #:use-module (gnu packages attr)
#:use-module (gnu packages base)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk) #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
@ -41,8 +47,10 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (gnu packages tcl) #:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
@ -149,6 +157,78 @@ configuration files.")
("tcl" ,tcl) ("tcl" ,tcl)
,@(package-inputs vim))))) ,@(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 (define-public vifm
(package (package
(name "vifm") (name "vifm")