Subject: Re: bug#59688: [PATCH] gnu: Add zls

From: Ludovic Courtès <[email-masked]>
Date: Thu, 05 Jan 2023 22:37:26 +0100

Hi,

Maya Tomasek <[email-masked]> skribis:

> From: Maya Tomasek <[email-masked]>
>
> ---
>  gnu/local.mk             |  1 +
>  gnu/packages/zig-xyz.scm | 68 ++++++++++++++++++++++++++++++++++++++++

Finally applied with a commit log as well as simplifications and
cosmetic changes to address the ‘guix lint’ warnings (see below).

Thanks!

Ludo’.

diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm
index 131d200ec7..3812aa0125 100644
--- a/gnu/packages/zig-xyz.scm
+++ b/gnu/packages/zig-xyz.scm
@@ -36,33 +36,30 @@ (define-public zig-zls
                     (url "https://github.com/zigtools/zls")
                     (commit version)
                     (recursive? #t)))
+              (file-name (git-file-name name version))
               (sha256
-               (base32 "1hhs7dz9rpshfd1a7x5swmix2rmh53vsqskh3mzqlrj2lgb3cnii"))))
+               (base32
+                "1hhs7dz9rpshfd1a7x5swmix2rmh53vsqskh3mzqlrj2lgb3cnii"))))
     (build-system gnu-build-system)
     (inputs (list zig python))
     (arguments
-     (list
-      #:modules '((guix build gnu-build-system)
-                  (guix build utils))
-      #:phases
-      #~(modify-phases %standard-phases
-          (delete 'configure)
-          (replace 'build
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let ((out (assoc-ref outputs "out"))
-                    (zig (string-append #$zig "/bin/zig")))
-                ;; zig defaults it's cache dir to subdir of $HOME, which is not defined in the build environment
-                (setenv "ZIG_GLOBAL_CACHE_DIR"
-                        (string-append (getcwd) "/zig-cache"))
-                ;; invoke the install target of the build command
-                (invoke zig "build" "install" "-Drelease-safe" "--prefix" out))))
-          (delete 'install)
-          (replace 'check
-            (lambda _
-              (let ((zig (string-append #$zig "/bin/zig")))
-                ;; run the test target
-                (invoke zig "build" "test")))))))
+     (list #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)
+                        (replace 'build
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let ((out (assoc-ref outputs "out")))
+                              (setenv "ZIG_GLOBAL_CACHE_DIR"
+                                      (string-append (getcwd) "/zig-cache"))
+                              (invoke "zig" "build" "install"
+                                      "-Drelease-safe" "--prefix" out))))
+                        (delete 'install)
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "zig" "build" "test")))))))
     (synopsis "Zig language server")
-    (description "Zig Language Server is a language server implementing the Language Server Protocol (LSP) for the @code{zig} programming language.")
+    (description
+     "Zig Language Server is a language server implementing the @acronym{LSP,
+Language Server Protocol} for the Zig programming language.")
     (home-page "https://github.com/zigtools/zls")
     (license license:expat)))