diff mbox series

[bug#54221,4/4] gnu: neovim: Update package style.

Message ID 0ee8ec7a501cf53dc1b70b0ba21f72c0f3dc2d58.1646227054.git.seerlite@nixnet.email
State New
Headers show
Series vim: Detect plugins via search paths. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

SeerLite March 2, 2022, 1:17 p.m. UTC
* gnu/packages/vim.scm (neovim)[inputs]: Remove labels.
[native-inputs]: Remove "guix.vim" gexp and remove labels.
[arguments]: Convert to list of gexps, inline the "guix.vim" gexp, adjust lua
input names and remove trailing #t's.
---
 gnu/packages/vim.scm | 114 +++++++++++++++++++++----------------------
 1 file changed, 55 insertions(+), 59 deletions(-)

Comments

M March 2, 2022, 6:40 p.m. UTC | #1
SeerLite via Guix-patches via schreef op wo 02-03-2022 om 10:17 [-
0300]:
> +                     (vimrc #$(local-file (search-auxiliary-file "guix.vim"))))

This stops package transformations from being able to change the
guix.vim used.  WDYT of using a variant of 'search-input-file', that
strips the /gnu/store/HASH- part of the store item names and tests
if the remainder equals the string "guix.vim"?  Such a procedure does
not currently exist to my knowledge, but it could be written and would
be useful outside the neovim definition.

Greetings,
Maxime.
SeerLite March 3, 2022, 5:36 p.m. UTC | #2
On 3/2/22 14:40, Maxime Devos wrote:
> SeerLite via Guix-patches via schreef op wo 02-03-2022 om 10:17 [-
> 0300]:
>> +                     (vimrc #$(local-file (search-auxiliary-file "guix.vim"))))
> 
> This stops package transformations from being able to change the
> guix.vim used.  WDYT of using a variant of 'search-input-file', that
> strips the /gnu/store/HASH- part of the store item names and tests
> if the remainder equals the string "guix.vim"?  Such a procedure does
> not currently exist to my knowledge, but it could be written and would
> be useful outside the neovim definition.


Ah, is this also why package inputs are specified explicitly instead of 
using gexps?

Is there any benefit to being able to change such a file via a 
transformation? Editing the vimrc feels like editing the default 
configuration of the package, rather than swapping a dependency. And 
that looks odd to me, maybe because I'm more used to package 
dependencies as inputs.

The procedure sounds like a good idea, but wouldn't it be easier to just 
make `local-file` not prepend the hash to the filename by storing it 
inside a parent directory with said hash instead? Is something like that 
possible?
diff mbox series

Patch

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index d5d8b412f7..5e6439ed00 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -676,70 +676,66 @@  (define-public neovim
         (base32 "11zyj6jvkwas3n6w1ckj3pk6jf81z1g7ngg4smmwm7c27y2a6f2m"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:modules ((srfi srfi-26)
+     (list
+      #:modules `((srfi srfi-26)
                   (guix build cmake-build-system)
                   (guix build utils))
-       #:configure-flags '("-DPREFER_LUA:BOOL=YES")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-lua-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((lua-version "5.1")
-                    (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 inputs <>)
-                                     '("lua"
-                                       "lua-luv"
-                                       "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)))
-         (add-after 'unpack 'prevent-embedding-gcc-store-path
-           (lambda _
-             ;; nvim remembers its build options, including the compiler with
-             ;; its complete path.  This adds gcc to the closure of nvim, which
-             ;; doubles its size.  We remove the refirence here.
-             (substitute* "cmake/GetCompileFlags.cmake"
-               (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc"))
-             #t))
-         (add-after 'install 'install-guix.vim
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((nvimdir (string-append (assoc-ref outputs "out") "/share/nvim")))
-               (mkdir-p nvimdir)
-               (copy-file (assoc-ref inputs "guix.vim")
-                          (string-append nvimdir "/sysinit.vim"))))))))
+      #:configure-flags #~(list "-DPREFER_LUA:BOOL=YES")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'set-lua-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let* ((lua-version "5.1")
+                     (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 inputs <>)
+                                      '("lua"
+                                        "lua5.1-luv"
+                                        "lua5.1-lpeg"
+                                        "lua5.1-bitop"
+                                        "lua5.1-libmpack"))))
+                (setenv "LUA_PATH"
+                        (string-join (map lua-path-spec lua-inputs) ";"))
+                (setenv "LUA_CPATH"
+                        (string-join (map lua-cpath-spec lua-inputs) ";")))))
+          (add-after 'unpack 'prevent-embedding-gcc-store-path
+            (lambda _
+              ;; nvim remembers its build options, including the compiler with
+              ;; its complete path.  This adds gcc to the closure of nvim, which
+              ;; doubles its size.  We remove the refirence here.
+              (substitute* "cmake/GetCompileFlags.cmake"
+                (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc"))))
+          (add-after 'install 'install-guix.vim
+             (lambda _
+               (let ((vimdir (string-append #$output "/share/nvim"))
+                     (vimrc #$(local-file (search-auxiliary-file "guix.vim"))))
+                 (mkdir-p vimdir)
+                 (copy-file vimrc (string-append vimdir "/sysinit.vim"))))))))
     (native-search-paths
-      (list (search-path-specification
-             (variable "GUIX_VIMRUNTIME")
-             (separator ",")
-             (files (list "share/vim/vimfiles")))))
+     (list (search-path-specification
+            (variable "GUIX_VIMRUNTIME")
+            (separator ",")
+            (files (list "share/vim/vimfiles")))))
     (inputs
-     `(("libuv" ,libuv)
-       ("msgpack" ,msgpack)
-       ("libtermkey" ,libtermkey)
-       ("libvterm" ,libvterm)
-       ("unibilium" ,unibilium)
-       ("jemalloc" ,jemalloc)
-       ("lua" ,lua-5.1)
-       ("lua-luv" ,lua5.1-luv)
-       ("lua-lpeg" ,lua5.1-lpeg)
-       ("lua-bitop" ,lua5.1-bitop)
-       ("lua-libmpack" ,lua5.1-libmpack)))
+     (list libuv
+           msgpack
+           libtermkey
+           libvterm
+           unibilium
+           jemalloc
+           lua-5.1
+           lua5.1-luv
+           lua5.1-lpeg
+           lua5.1-bitop
+           lua5.1-libmpack))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-       ("gperf" ,gperf)
-       ("guix.vim" ,(search-auxiliary-file "guix.vim"))))
+     (list pkg-config gettext-minimal gperf))
     (home-page "https://neovim.io")
     (synopsis "Fork of vim focused on extensibility and agility")
     (description "Neovim is a project that seeks to aggressively