* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server @ 2022-12-23 20:26 goodoldpaul--- via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via ` (6 more replies) 0 siblings, 7 replies; 15+ messages in thread From: goodoldpaul--- via Guix-patches via @ 2022-12-23 20:26 UTC (permalink / raw) To: 60286 Dear Guixers, I'm sending a couple of patches to add the Guile's implementation for a Scheme LSP Server ( https://codeberg.org/rgherdt/scheme-lsp-server ). Thank you for your time and efforts :) ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc. 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via @ 2022-12-23 20:46 ` Giacomo Leidi via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2022-12-31 16:23 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Abhishek Cherath ` (5 subsequent siblings) 6 siblings, 1 reply; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2022-12-23 20:46 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/scheme-xyz.scm | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 gnu/packages/scheme-xyz.scm diff --git a/gnu/local.mk b/gnu/local.mk index 45d05de02d..868903a0e7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -548,6 +548,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/sawfish.scm \ %D%/packages/scanner.scm \ %D%/packages/scheme.scm \ + %D%/packages/scheme-xyz.scm \ %D%/packages/spreadsheet.scm \ %D%/packages/screen.scm \ %D%/packages/scribus.scm \ diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm new file mode 100644 index 0000000000..819c5cdf9e --- /dev/null +++ b/gnu/packages/scheme-xyz.scm @@ -0,0 +1,67 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages scheme-xyz) + #:use-module (gnu packages autotools) + #:use-module (gnu packages guile) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages texinfo) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix build-system gnu)) + +(define (scheme-json-rpc-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-json-rpc.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-json-rpc + (package + (name "guile-scheme-json-rpc") + (version "0.2.11") + (source + (scheme-json-rpc-origin + name + version + "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")) + (build-system gnu-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile")))))) + (native-inputs (list autoconf automake pkg-config texinfo guile-3.0-latest)) + (synopsis "Implementation of the JSON-RPC for Scheme") + (description + "@code{scheme-json-rpc} allows calling procedures +on remote servers by exchanging JSON objects. It implements the +@url{jsonrpc specifications, https://www.jsonrpc.org/specification}. +The low-level API strives to be R7RS compliant, relying on some SRFI's +when needed. So far it was only tested under CHICKEN 5 and Guile 3. + +This package delivers Guile's bytecode for @code{scheme-json-rpc}.") + (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") + (license license:expat))) base-commit: 1b29fccff2334fb5d6e979a290233a452969e39b -- 2.38.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [PATCH 2/2] gnu: Add guile-scheme-lsp-server. 2022-12-23 20:46 ` [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2022-12-23 20:46 ` Giacomo Leidi via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2022-12-23 20:46 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm (guile-scheme-lsp-server): New variable. --- gnu/packages/scheme-xyz.scm | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm index 819c5cdf9e..513953b0f4 100644 --- a/gnu/packages/scheme-xyz.scm +++ b/gnu/packages/scheme-xyz.scm @@ -18,6 +18,7 @@ (define-module (gnu packages scheme-xyz) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages guile) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) @@ -65,3 +66,87 @@ (define-public guile-scheme-json-rpc This package delivers Guile's bytecode for @code{scheme-json-rpc}.") (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") (license license:expat))) + +(define (scheme-lsp-server-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-lsp-server.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-lsp-server + (package + (name "guile-scheme-lsp-server") + (version "0.2.2") + (source + (scheme-lsp-server-origin + name + version + "0lb359gw00w149h5yq2brfrcpybdwdj6ndbl7k1ms88l653r5l2g")) + (build-system gnu-build-system) + (arguments + (list #:modules `((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile"))) + (add-after 'install 'wrap-entrypoint + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (site (string-append #$output + "/share/guile/site")) + (deps (list #$guile-scheme-json-rpc))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" + version)) + (compiled-modules (string-append #$output + "/lib/guile/" + version + "/site-ccache"))) + (wrap-program (string-append bin + "/guile-lsp-server") + `("GUILE_LOAD_PATH" ":" + prefix + (,modules + ,@(map (lambda (dep) + (string-append + dep + "/share/guile/site/" + version)) + deps))) + `("GUILE_LOAD_COMPILED_PATH" + ":" prefix + (,compiled-modules + ,@(map (lambda (dep) + (string-append + dep + "/lib/guile/" + version + "/site-ccache")) + deps)))) + #t))))))))) + (native-inputs (list autoconf automake pkg-config)) + (inputs + ;; Depend on the latest Guile to avoid bytecode compatibility issues when + ;; using modules built against the latest version. + (list bash-minimal + guile-3.0-latest)) + (propagated-inputs (list guile-scheme-json-rpc)) + (synopsis "LSP (Language Server Protocol) server for Scheme") + (description + "@code{guile-lsp-server} is an implementation for Guile of the LSP +specification. This software aims to support several Scheme implementations. +To achieve this, the code is designed to contain as much logic as possible in +R7RS Scheme, separating implementation-specific code in different modules. + +This package delivers Guile's implementation for @code{scheme-lsp-server}.") + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") + (license license:expat))) -- 2.38.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2022-12-31 16:23 ` Abhishek Cherath 2023-01-02 1:52 ` goodoldpaul--- via Guix-patches via ` (4 subsequent siblings) 6 siblings, 0 replies; 15+ messages in thread From: Abhishek Cherath @ 2022-12-31 16:23 UTC (permalink / raw) To: 60286 [-- Attachment #1: Type: text/plain, Size: 374 bytes --] Ha! I hadn't seen this and submitted #60444 Does the json-rpc package need autoconf automake and TeX? I got it to work with guile-3, guile-json-3 as inputs and pkg-config as a native input. (Actually now that I think about it I guess guile-json isn't needed) Also why would guile be a native input for json-rpc? Should just be an input right? Thanks, Abhishek. [-- Attachment #2: Type: text/html, Size: 433 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via 2022-12-31 16:23 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Abhishek Cherath @ 2023-01-02 1:52 ` goodoldpaul--- via Guix-patches via 2023-04-12 20:43 ` goodoldpaul--- via Guix-patches via 2023-01-02 2:00 ` [bug#60286] [PATCHv2 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via ` (3 subsequent siblings) 6 siblings, 1 reply; 15+ messages in thread From: goodoldpaul--- via Guix-patches via @ 2023-01-02 1:52 UTC (permalink / raw) To: 60286 Dear Abhishek, thank you for the heads up! I fixed my patches with your suggestions and I'm sending an updated patchset. giacomo ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2023-01-02 1:52 ` goodoldpaul--- via Guix-patches via @ 2023-04-12 20:43 ` goodoldpaul--- via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: goodoldpaul--- via Guix-patches via @ 2023-04-12 20:43 UTC (permalink / raw) To: 60286 Dear Guixers, this is a friendly ping :) I'm sending an updated patchset. Thank you for your time and efforts, Giacomo ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHv2 1/2] gnu: Add guile-scheme-json-rpc. 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via ` (2 preceding siblings ...) 2023-01-02 1:52 ` goodoldpaul--- via Guix-patches via @ 2023-01-02 2:00 ` Giacomo Leidi via Guix-patches via 2023-01-02 2:00 ` [bug#60286] [PATCHv2 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2023-04-12 20:44 ` [bug#60286] [v3 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via ` (2 subsequent siblings) 6 siblings, 1 reply; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2023-01-02 2:00 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/scheme-xyz.scm | 68 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/scheme-xyz.scm diff --git a/gnu/local.mk b/gnu/local.mk index f0b1b3fd15..5a285eb629 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -548,6 +548,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/sawfish.scm \ %D%/packages/scanner.scm \ %D%/packages/scheme.scm \ + %D%/packages/scheme-xyz.scm \ %D%/packages/spreadsheet.scm \ %D%/packages/screen.scm \ %D%/packages/scribus.scm \ diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm new file mode 100644 index 0000000000..91ba1e7f5b --- /dev/null +++ b/gnu/packages/scheme-xyz.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages scheme-xyz) + #:use-module (gnu packages autotools) + #:use-module (gnu packages guile) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages texinfo) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix build-system gnu)) + +(define (scheme-json-rpc-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-json-rpc.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-json-rpc + (package + (name "guile-scheme-json-rpc") + (version "0.2.11") + (source + (scheme-json-rpc-origin + name + version + "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")) + (build-system gnu-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile")))))) + (native-inputs (list pkg-config)) + (inputs (list guile-3.0-latest)) + (synopsis "Implementation of the JSON-RPC for Scheme") + (description + "@code{scheme-json-rpc} allows calling procedures +on remote servers by exchanging JSON objects. It implements the +@url{jsonrpc specifications, https://www.jsonrpc.org/specification}. +The low-level API strives to be R7RS compliant, relying on some SRFI's +when needed. So far it was only tested under CHICKEN 5 and Guile 3. + +This package delivers Guile's bytecode for @code{scheme-json-rpc}.") + (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") + (license license:expat))) base-commit: d7a9d72bb02a2a3b1a99183655bf878547116032 -- 2.38.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHv2 2/2] gnu: Add guile-scheme-lsp-server. 2023-01-02 2:00 ` [bug#60286] [PATCHv2 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2023-01-02 2:00 ` Giacomo Leidi via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2023-01-02 2:00 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm (guile-scheme-lsp-server): New variable. --- gnu/packages/scheme-xyz.scm | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm index 91ba1e7f5b..3947bf4f92 100644 --- a/gnu/packages/scheme-xyz.scm +++ b/gnu/packages/scheme-xyz.scm @@ -18,6 +18,7 @@ (define-module (gnu packages scheme-xyz) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages guile) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) @@ -66,3 +67,87 @@ (define-public guile-scheme-json-rpc This package delivers Guile's bytecode for @code{scheme-json-rpc}.") (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") (license license:expat))) + +(define (scheme-lsp-server-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-lsp-server.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-lsp-server + (package + (name "guile-scheme-lsp-server") + (version "0.2.2") + (source + (scheme-lsp-server-origin + name + version + "0lb359gw00w149h5yq2brfrcpybdwdj6ndbl7k1ms88l653r5l2g")) + (build-system gnu-build-system) + (arguments + (list #:modules `((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile"))) + (add-after 'install 'wrap-entrypoint + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (site (string-append #$output + "/share/guile/site")) + (deps (list #$guile-scheme-json-rpc))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" + version)) + (compiled-modules (string-append #$output + "/lib/guile/" + version + "/site-ccache"))) + (wrap-program (string-append bin + "/guile-lsp-server") + `("GUILE_LOAD_PATH" ":" + prefix + (,modules + ,@(map (lambda (dep) + (string-append + dep + "/share/guile/site/" + version)) + deps))) + `("GUILE_LOAD_COMPILED_PATH" + ":" prefix + (,compiled-modules + ,@(map (lambda (dep) + (string-append + dep + "/lib/guile/" + version + "/site-ccache")) + deps)))) + #t))))))))) + (native-inputs (list pkg-config)) + (inputs + ;; Depend on the latest Guile to avoid bytecode compatibility issues when + ;; using modules built against the latest version. + (list bash-minimal + guile-3.0-latest)) + (propagated-inputs (list guile-scheme-json-rpc)) + (synopsis "LSP (Language Server Protocol) server for Scheme") + (description + "@code{guile-lsp-server} is an implementation for Guile of the LSP +specification. This software aims to support several Scheme implementations. +To achieve this, the code is designed to contain as much logic as possible in +R7RS Scheme, separating implementation-specific code in different modules. + +This package delivers Guile's implementation for @code{scheme-lsp-server}.") + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") + (license license:expat))) -- 2.38.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [v3 1/2] gnu: Add guile-scheme-json-rpc. 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via ` (3 preceding siblings ...) 2023-01-02 2:00 ` [bug#60286] [PATCHv2 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2023-04-12 20:44 ` Giacomo Leidi via Guix-patches via 2023-04-12 20:44 ` [bug#60286] [v3 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2023-06-21 19:16 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Ricardo G. Herdt 2023-09-05 3:59 ` [bug#60286] [PATCH v2] gnu: Add emacs-flymake-guile Distopico 6 siblings, 1 reply; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2023-04-12 20:44 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/scheme-xyz.scm | 68 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/scheme-xyz.scm diff --git a/gnu/local.mk b/gnu/local.mk index 8088e8170b..7f6cfc4158 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -556,6 +556,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/sawfish.scm \ %D%/packages/scanner.scm \ %D%/packages/scheme.scm \ + %D%/packages/scheme-xyz.scm \ %D%/packages/spreadsheet.scm \ %D%/packages/screen.scm \ %D%/packages/scribus.scm \ diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm new file mode 100644 index 0000000000..91ba1e7f5b --- /dev/null +++ b/gnu/packages/scheme-xyz.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages scheme-xyz) + #:use-module (gnu packages autotools) + #:use-module (gnu packages guile) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages texinfo) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix build-system gnu)) + +(define (scheme-json-rpc-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-json-rpc.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-json-rpc + (package + (name "guile-scheme-json-rpc") + (version "0.2.11") + (source + (scheme-json-rpc-origin + name + version + "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")) + (build-system gnu-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile")))))) + (native-inputs (list pkg-config)) + (inputs (list guile-3.0-latest)) + (synopsis "Implementation of the JSON-RPC for Scheme") + (description + "@code{scheme-json-rpc} allows calling procedures +on remote servers by exchanging JSON objects. It implements the +@url{jsonrpc specifications, https://www.jsonrpc.org/specification}. +The low-level API strives to be R7RS compliant, relying on some SRFI's +when needed. So far it was only tested under CHICKEN 5 and Guile 3. + +This package delivers Guile's bytecode for @code{scheme-json-rpc}.") + (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") + (license license:expat))) base-commit: dd3e5e71104a2bcbad80e52e062a144ea96b8c6a -- 2.39.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [v3 2/2] gnu: Add guile-scheme-lsp-server. 2023-04-12 20:44 ` [bug#60286] [v3 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2023-04-12 20:44 ` Giacomo Leidi via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: Giacomo Leidi via Guix-patches via @ 2023-04-12 20:44 UTC (permalink / raw) To: 60286; +Cc: Giacomo Leidi * gnu/packages/scheme-xyz.scm (guile-scheme-lsp-server): New variable. --- gnu/packages/scheme-xyz.scm | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/scheme-xyz.scm b/gnu/packages/scheme-xyz.scm index 91ba1e7f5b..3947bf4f92 100644 --- a/gnu/packages/scheme-xyz.scm +++ b/gnu/packages/scheme-xyz.scm @@ -18,6 +18,7 @@ (define-module (gnu packages scheme-xyz) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages guile) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) @@ -66,3 +67,87 @@ (define-public guile-scheme-json-rpc This package delivers Guile's bytecode for @code{scheme-json-rpc}.") (home-page "https://codeberg.org/rgherdt/scheme-json-rpc") (license license:expat))) + +(define (scheme-lsp-server-origin name version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-lsp-server.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + +(define-public guile-scheme-lsp-server + (package + (name "guile-scheme-lsp-server") + (version "0.2.2") + (source + (scheme-lsp-server-origin + name + version + "0lb359gw00w149h5yq2brfrcpybdwdj6ndbl7k1ms88l653r5l2g")) + (build-system gnu-build-system) + (arguments + (list #:modules `((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile"))) + (add-after 'install 'wrap-entrypoint + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (site (string-append #$output + "/share/guile/site")) + (deps (list #$guile-scheme-json-rpc))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" + version)) + (compiled-modules (string-append #$output + "/lib/guile/" + version + "/site-ccache"))) + (wrap-program (string-append bin + "/guile-lsp-server") + `("GUILE_LOAD_PATH" ":" + prefix + (,modules + ,@(map (lambda (dep) + (string-append + dep + "/share/guile/site/" + version)) + deps))) + `("GUILE_LOAD_COMPILED_PATH" + ":" prefix + (,compiled-modules + ,@(map (lambda (dep) + (string-append + dep + "/lib/guile/" + version + "/site-ccache")) + deps)))) + #t))))))))) + (native-inputs (list pkg-config)) + (inputs + ;; Depend on the latest Guile to avoid bytecode compatibility issues when + ;; using modules built against the latest version. + (list bash-minimal + guile-3.0-latest)) + (propagated-inputs (list guile-scheme-json-rpc)) + (synopsis "LSP (Language Server Protocol) server for Scheme") + (description + "@code{guile-lsp-server} is an implementation for Guile of the LSP +specification. This software aims to support several Scheme implementations. +To achieve this, the code is designed to contain as much logic as possible in +R7RS Scheme, separating implementation-specific code in different modules. + +This package delivers Guile's implementation for @code{scheme-lsp-server}.") + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") + (license license:expat))) -- 2.39.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via ` (4 preceding siblings ...) 2023-04-12 20:44 ` [bug#60286] [v3 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via @ 2023-06-21 19:16 ` Ricardo G. Herdt 2023-06-21 19:27 ` Ricardo G. Herdt 2023-09-05 3:59 ` [bug#60286] [PATCH v2] gnu: Add emacs-flymake-guile Distopico 6 siblings, 1 reply; 15+ messages in thread From: Ricardo G. Herdt @ 2023-06-21 19:16 UTC (permalink / raw) To: 60286 Hi I'm submitting a new patch using the already defined guile-scheme-json-rpc as dependency. I also updated tha latter to a new version, since guile-lsp-server now rely on its changes. I moved guile-lsp-server (renamed from guile-scheme-lsp-server) to guile-xyz.scm, is that ok? Regards, Ricardo G. Herdt ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2023-06-21 19:16 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Ricardo G. Herdt @ 2023-06-21 19:27 ` Ricardo G. Herdt 2023-08-07 9:44 ` Andrew Tropin 0 siblings, 1 reply; 15+ messages in thread From: Ricardo G. Herdt @ 2023-06-21 19:27 UTC (permalink / raw) To: 60286 * gnu/packages/guile-xyz.scm: add guile-lsp-server; (guile-scheme-json-rpc): update to 0.4.0, change dependencies Original package author Giacomo Leidi. Adapted to use guile-scheme-json-rpc. --- gnu/packages/guile-xyz.scm | 97 +++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 6 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index db7be432cc..1195e0e328 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1054,9 +1054,9 @@ (define-public guile2.2-sjson (inputs (list guile-2.2)))) (define-public guile-scheme-json-rpc - (let ((commit "45ae6890f6619286f5679f88c094c88127b54c4a") + (let ((commit "50acef7b824e2d23140e48242020f5fdc85cc67d") (revision "0") - (version "0.2.11")) + (version "0.4.0")) (package (name "guile-scheme-json-rpc") (version (git-version version revision commit)) @@ -1068,16 +1068,20 @@ (define-public guile-scheme-json-rpc (file-name (git-file-name name version)) (sha256 (base32 - "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")))) + "0jsampz2ahs18z6yh9b5l3lkj8ycnavs0vg9sjngdj3w3zvrdcvm")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'change-to-guile-dir (lambda _ (chdir "guile")))))) - (inputs (list guile-3.0 guile-json-3)) - (native-inputs (list pkg-config)) - (synopsis "Library providing JSON-RPC capability in Scheme") + (inputs (list guile-3.0 guile-srfi-145 guile-srfi-180)) + (native-inputs (list autoconf + automake + pkg-config + texinfo + guile-3.0)) + (synopsis "Library providing JSON-RPC capability for Guile Scheme") (description "This library implements parts of the @uref{https://www.jsonrpc.org/specification,JSON-RPC specification}, allowing @@ -1085,6 +1089,87 @@ (define-public guile-scheme-json-rpc (home-page "https://codeberg.org/rgherdt/scheme-json-rpc/") (license license:expat)))) +(define-public guile-lsp-server + (package + (name "guile-lsp-server") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/rgherdt/scheme-lsp-server.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04fc76pnl8mrwrjw49xhzs4r0dx2vh4gy2y151p33hahylf5z1xs")))) + (build-system gnu-build-system) + (arguments + (list #:modules `((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-to-guile-directory + (lambda _ + (chdir "./guile"))) + (add-after 'install 'wrap-entrypoint + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (site (string-append #$output + "/share/guile/site")) + (deps (list #$guile-scheme-json-rpc))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" + version)) + (compiled-modules (string-append #$output + "/lib/guile/" + version + "/site-ccache"))) + (wrap-program (string-append bin + "/guile-lsp-server") + `("GUILE_LOAD_PATH" ":" + prefix + (,modules + ,@(map (lambda (dep) + (string-append + dep + "/share/guile/site/" + version)) + deps))) + `("GUILE_LOAD_COMPILED_PATH" + ":" prefix + (,compiled-modules + ,@(map (lambda (dep) + (string-append + dep + "/lib/guile/" + version + "/site-ccache")) + deps)))) + #t))))))))) + (native-inputs (list pkg-config)) + (inputs + ;; Depend on the latest Guile to avoid bytecode compatibility issues when + ;; using modules built against the latest version. + (list bash-minimal + guile-3.0-latest)) + (propagated-inputs (list guile-irregex + guile-scheme-json-rpc + guile-srfi-145 + guile-srfi-180)) + (synopsis "LSP (Language Server Protocol) server for Scheme") + (description + "@code{guile-lsp-server} is an implementation for Guile of the LSP +specification. This software aims to support several Scheme implementations. +To achieve this, the code is designed to contain as much logic as possible in +R7RS Scheme, separating implementation-specific code in different modules. + +This package delivers Guile's implementation for @code{scheme-lsp-server}.") + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") + (license license:expat))) + (define-public guile-squee (let ((commit "fab9d9590792f3ededd4abd8cfa6be5e56659678") (revision "4")) base-commit: 392f9db97687bfb6195e65a28e1710f22b6cb972 -- 2.40.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2023-06-21 19:27 ` Ricardo G. Herdt @ 2023-08-07 9:44 ` Andrew Tropin 2023-09-17 8:29 ` Ricardo G. Herdt 0 siblings, 1 reply; 15+ messages in thread From: Andrew Tropin @ 2023-08-07 9:44 UTC (permalink / raw) To: Ricardo G. Herdt, 60286 [-- Attachment #1: Type: text/plain, Size: 8477 bytes --] On 2023-06-21 19:27, Ricardo G. Herdt wrote: Hi Ricardo, thank you very much for the patches and working on guile-lsp-server. > * gnu/packages/guile-xyz.scm: add guile-lsp-server; > (guile-scheme-json-rpc): update to 0.4.0, change dependencies > > Original package author Giacomo Leidi. Adapted to use > guile-scheme-json-rpc. > --- > gnu/packages/guile-xyz.scm | 97 +++++++++++++++++++++++++++++++++++--- > 1 file changed, 91 insertions(+), 6 deletions(-) > > diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm > index db7be432cc..1195e0e328 100644 > --- a/gnu/packages/guile-xyz.scm > +++ b/gnu/packages/guile-xyz.scm > @@ -1054,9 +1054,9 @@ (define-public guile2.2-sjson > (inputs (list guile-2.2)))) > > (define-public guile-scheme-json-rpc > - (let ((commit "45ae6890f6619286f5679f88c094c88127b54c4a") > + (let ((commit "50acef7b824e2d23140e48242020f5fdc85cc67d") For tagged release there is no need for commit and revision, I'll remove them and apply the part of the patch related to guile-scheme-json-rpc version update as separate commit. > (revision "0") > - (version "0.2.11")) > + (version "0.4.0")) > (package > (name "guile-scheme-json-rpc") > (version (git-version version revision commit)) > @@ -1068,16 +1068,20 @@ (define-public guile-scheme-json-rpc > (file-name (git-file-name name version)) > (sha256 > (base32 > - > "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")))) > + > "0jsampz2ahs18z6yh9b5l3lkj8ycnavs0vg9sjngdj3w3zvrdcvm")))) > (build-system gnu-build-system) > (arguments > `(#:phases (modify-phases %standard-phases > (add-after 'unpack 'change-to-guile-dir > (lambda _ > (chdir "guile")))))) > - (inputs (list guile-3.0 guile-json-3)) > - (native-inputs (list pkg-config)) > - (synopsis "Library providing JSON-RPC capability in Scheme") > + (inputs (list guile-3.0 guile-srfi-145 guile-srfi-180)) > + (native-inputs (list autoconf > + automake > + pkg-config > + texinfo > + guile-3.0)) auto tools is already provided by gnu-build-system, no need to provide them one more time. I don't see any texi docs, so probably texinfo is not needed. Also guile-3.0 in native (build host side) inputs also not needed. Removed. > + (synopsis "Library providing JSON-RPC capability for Guile > Scheme") > (description > "This library implements parts of the > @uref{https://www.jsonrpc.org/specification,JSON-RPC specification}, > allowing > @@ -1085,6 +1089,87 @@ (define-public guile-scheme-json-rpc > (home-page "https://codeberg.org/rgherdt/scheme-json-rpc/") > (license license:expat)))) > > +(define-public guile-lsp-server > + (package > + (name "guile-lsp-server") > + (version "0.4.0") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://codeberg.org/rgherdt/scheme-lsp-server.git") > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "04fc76pnl8mrwrjw49xhzs4r0dx2vh4gy2y151p33hahylf5z1xs")))) > + (build-system gnu-build-system) > + (arguments > + (list #:modules `((ice-9 match) > + (ice-9 ftw) > + ,@%gnu-build-system-modules) > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'move-to-guile-directory > + (lambda _ > + (chdir "./guile"))) > + (add-after 'install 'wrap-entrypoint > + (lambda _ > + (let* ((bin (string-append #$output "/bin")) > + (site (string-append #$output > + "/share/guile/site")) > + (deps (list #$guile-scheme-json-rpc))) It's better to use (assoc-ref inputs ...) here, because #$guile-scheme-json-rpc will hardcode the exact package and if someone will try to inherit from guile-lsp-server and override guile-scheme-json-rpc input, it won't make a desired effect and hardcoded version of guile-scheme-json-rpc will be used. Also, guile-lsp-server executable doesn't run, it's very likely that other required dependencies are missing here in the deps variable. > + (match (scandir site) > + (("." ".." version) > + (let ((modules (string-append site "/" > + version)) > + (compiled-modules (string-append #$output > + "/lib/guile/" > + version > + "/site-ccache"))) > + (wrap-program (string-append bin > + "/guile-lsp-server") > + `("GUILE_LOAD_PATH" ":" > + prefix > + (,modules > + ,@(map (lambda (dep) > + (string-append > + dep > + > "/share/guile/site/" > + version)) > + deps))) > + `("GUILE_LOAD_COMPILED_PATH" > + ":" prefix > + (,compiled-modules > + ,@(map (lambda (dep) > + (string-append > + dep > + "/lib/guile/" > + version > + "/site-ccache")) > + deps)))) > + #t))))))))) > + (native-inputs (list pkg-config)) > + (inputs > + ;; Depend on the latest Guile to avoid bytecode compatibility > issues when > + ;; using modules built against the latest version. > + (list bash-minimal > + guile-3.0-latest)) > + (propagated-inputs (list guile-irregex > + guile-scheme-json-rpc > + guile-srfi-145 > + guile-srfi-180)) For standalone programs like guile-lsp-server, where we manually construct GUILE_LOAD_PATH it's not needed to propagate dependencies in the profile, where package is installed. It should be just inputs. > + (synopsis "LSP (Language Server Protocol) server for Scheme") > + (description > + "@code{guile-lsp-server} is an implementation for Guile of the LSP > +specification. This software aims to support several Scheme > implementations. > +To achieve this, the code is designed to contain as much logic as > possible in > +R7RS Scheme, separating implementation-specific code in different > modules. > + > +This package delivers Guile's implementation for > @code{scheme-lsp-server}.") > + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") > + (license license:expat))) > + > (define-public guile-squee > (let ((commit "fab9d9590792f3ededd4abd8cfa6be5e56659678") > (revision "4")) > > base-commit: 392f9db97687bfb6195e65a28e1710f22b6cb972 Applied first part of the patch, pushed as https://git.savannah.gnu.org/cgit/guix.git/commit/?id=56667ee55c Please update the guile-lsp-server package definition to make it work (right now package builds, but executable fails to run). P.S. Thanks to Giacomo for spinning up this thread! -- Best regards, Andrew Tropin [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server 2023-08-07 9:44 ` Andrew Tropin @ 2023-09-17 8:29 ` Ricardo G. Herdt 0 siblings, 0 replies; 15+ messages in thread From: Ricardo G. Herdt @ 2023-09-17 8:29 UTC (permalink / raw) To: 60286 Hi Andrew, Thanks for the feedback. Could you please show the error you get when running guile-lsp-server? I'm using Guix on top of Debian, and running `guile-lsp-server` with the prefixes set works: GUILE_LOAD_PATH=...:${HOME}/.guix-profile/share/guile/site/3.0/ GUILE_LOAD_COMPILED_PATH=...:${HOME}/.guix-profile/lib/guile/3.0/site-ccache ./guile-lsp-server --version Regards, Ricardo Am 07.08.2023 11:44 schrieb Andrew Tropin: > On 2023-06-21 19:27, Ricardo G. Herdt wrote: > > Hi Ricardo, thank you very much for the patches and working on > guile-lsp-server. > >> * gnu/packages/guile-xyz.scm: add guile-lsp-server; >> (guile-scheme-json-rpc): update to 0.4.0, change dependencies >> >> Original package author Giacomo Leidi. Adapted to use >> guile-scheme-json-rpc. >> --- >> gnu/packages/guile-xyz.scm | 97 >> +++++++++++++++++++++++++++++++++++--- >> 1 file changed, 91 insertions(+), 6 deletions(-) >> >> diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm >> index db7be432cc..1195e0e328 100644 >> --- a/gnu/packages/guile-xyz.scm >> +++ b/gnu/packages/guile-xyz.scm >> @@ -1054,9 +1054,9 @@ (define-public guile2.2-sjson >> (inputs (list guile-2.2)))) >> >> (define-public guile-scheme-json-rpc >> - (let ((commit "45ae6890f6619286f5679f88c094c88127b54c4a") >> + (let ((commit "50acef7b824e2d23140e48242020f5fdc85cc67d") > > For tagged release there is no need for commit and revision, I'll > remove > them and apply the part of the patch related to guile-scheme-json-rpc > version update as separate commit. > >> (revision "0") >> - (version "0.2.11")) >> + (version "0.4.0")) >> (package >> (name "guile-scheme-json-rpc") >> (version (git-version version revision commit)) >> @@ -1068,16 +1068,20 @@ (define-public guile-scheme-json-rpc >> (file-name (git-file-name name version)) >> (sha256 >> (base32 >> - >> "0w4m8xx8yyj0rv0q57mjr8ja87l7yikscj33i3ck26wg7230ppa5")))) >> + >> "0jsampz2ahs18z6yh9b5l3lkj8ycnavs0vg9sjngdj3w3zvrdcvm")))) >> (build-system gnu-build-system) >> (arguments >> `(#:phases (modify-phases %standard-phases >> (add-after 'unpack 'change-to-guile-dir >> (lambda _ >> (chdir "guile")))))) >> - (inputs (list guile-3.0 guile-json-3)) >> - (native-inputs (list pkg-config)) >> - (synopsis "Library providing JSON-RPC capability in Scheme") >> + (inputs (list guile-3.0 guile-srfi-145 guile-srfi-180)) >> + (native-inputs (list autoconf >> + automake >> + pkg-config >> + texinfo >> + guile-3.0)) > > auto tools is already provided by gnu-build-system, no need to provide > them one more time. I don't see any texi docs, so probably texinfo is > not needed. Also guile-3.0 in native (build host side) inputs also not > needed. Removed. > >> + (synopsis "Library providing JSON-RPC capability for Guile >> Scheme") >> (description >> "This library implements parts of the >> @uref{https://www.jsonrpc.org/specification,JSON-RPC specification}, >> allowing >> @@ -1085,6 +1089,87 @@ (define-public guile-scheme-json-rpc >> (home-page "https://codeberg.org/rgherdt/scheme-json-rpc/") >> (license license:expat)))) >> >> +(define-public guile-lsp-server >> + (package >> + (name "guile-lsp-server") >> + (version "0.4.0") >> + (source >> + (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url >> "https://codeberg.org/rgherdt/scheme-lsp-server.git") >> + (commit version))) >> + (file-name (git-file-name name version)) >> + (sha256 >> + (base32 >> + "04fc76pnl8mrwrjw49xhzs4r0dx2vh4gy2y151p33hahylf5z1xs")))) >> + (build-system gnu-build-system) >> + (arguments >> + (list #:modules `((ice-9 match) >> + (ice-9 ftw) >> + ,@%gnu-build-system-modules) >> + #:phases >> + #~(modify-phases %standard-phases >> + (add-after 'unpack 'move-to-guile-directory >> + (lambda _ >> + (chdir "./guile"))) >> + (add-after 'install 'wrap-entrypoint >> + (lambda _ >> + (let* ((bin (string-append #$output "/bin")) >> + (site (string-append #$output >> + "/share/guile/site")) >> + (deps (list #$guile-scheme-json-rpc))) > > It's better to use (assoc-ref inputs ...) here, because > #$guile-scheme-json-rpc will hardcode the exact package and if someone > will try to inherit from guile-lsp-server and override > guile-scheme-json-rpc input, it won't make a desired effect and > hardcoded version of guile-scheme-json-rpc will be used. > > Also, guile-lsp-server executable doesn't run, it's very likely that > other required dependencies are missing here in the deps variable. > >> + (match (scandir site) >> + (("." ".." version) >> + (let ((modules (string-append site "/" >> + version)) >> + (compiled-modules (string-append >> #$output >> + "/lib/guile/" >> + version >> + "/site-ccache"))) >> + (wrap-program (string-append bin >> + "/guile-lsp-server") >> + `("GUILE_LOAD_PATH" ":" >> + prefix >> + (,modules >> + ,@(map (lambda (dep) >> + (string-append >> + dep >> + >> "/share/guile/site/" >> + version)) >> + deps))) >> + `("GUILE_LOAD_COMPILED_PATH" >> + ":" prefix >> + (,compiled-modules >> + ,@(map (lambda (dep) >> + (string-append >> + dep >> + "/lib/guile/" >> + version >> + "/site-ccache")) >> + deps)))) >> + #t))))))))) >> + (native-inputs (list pkg-config)) >> + (inputs >> + ;; Depend on the latest Guile to avoid bytecode compatibility >> issues when >> + ;; using modules built against the latest version. >> + (list bash-minimal >> + guile-3.0-latest)) >> + (propagated-inputs (list guile-irregex >> + guile-scheme-json-rpc >> + guile-srfi-145 >> + guile-srfi-180)) > > For standalone programs like guile-lsp-server, where we manually > construct GUILE_LOAD_PATH it's not needed to propagate dependencies in > the profile, where package is installed. It should be just inputs. > >> + (synopsis "LSP (Language Server Protocol) server for Scheme") >> + (description >> + "@code{guile-lsp-server} is an implementation for Guile of the >> LSP >> +specification. This software aims to support several Scheme >> implementations. >> +To achieve this, the code is designed to contain as much logic as >> possible in >> +R7RS Scheme, separating implementation-specific code in different >> modules. >> + >> +This package delivers Guile's implementation for >> @code{scheme-lsp-server}.") >> + (home-page "https://codeberg.org/rgherdt/scheme-lsp-server") >> + (license license:expat))) >> + >> (define-public guile-squee >> (let ((commit "fab9d9590792f3ededd4abd8cfa6be5e56659678") >> (revision "4")) >> >> base-commit: 392f9db97687bfb6195e65a28e1710f22b6cb972 > > Applied first part of the patch, pushed as > https://git.savannah.gnu.org/cgit/guix.git/commit/?id=56667ee55c > > Please update the guile-lsp-server package definition to make it work > (right now package builds, but executable fails to run). > > P.S. Thanks to Giacomo for spinning up this thread! ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#60286] [PATCH v2] gnu: Add emacs-flymake-guile. 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via ` (5 preceding siblings ...) 2023-06-21 19:16 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Ricardo G. Herdt @ 2023-09-05 3:59 ` Distopico 6 siblings, 0 replies; 15+ messages in thread From: Distopico @ 2023-09-05 3:59 UTC (permalink / raw) To: 60286; +Cc: Distopico From v1 -> v2 remove flymake-quickdef dependency and update version. * gnu/packages/emacs-xyz.scm (emacs-flymake-guile): New variable. --- * gnu/packages/emacs-xyz.scm (emacs-flymake-guile): New variable. gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 3eaf215134..0d07235659 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -132,6 +132,7 @@ ;;; Copyright © 2023 Fabio Natali <me@fabionatali.com> ;;; Copyright © 2023 Arnaud Lechevallier <arnaud.lechevallier@free.fr> ;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org> +;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2497,6 +2498,29 @@ (define-public emacs-flymake-collection modes.") (license license:expat))) +(define-public emacs-flymake-guile + (package + (name "emacs-flymake-guile") + (version "0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://framagit.org/flymake-backends/flymake-guile.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06x237qhvnbyxngbqinjg417n341h652jkagr1a5whximlsaw2c8")))) + (build-system emacs-build-system) + (home-page "https://framagit.org/flymake-backends/flymake-guile") + (synopsis "GNU Guile support for Flymake") + (description + "This package provides a Flymake backend for GNU Guile using @code{guild +compile}.") + (license license:gpl3+))) + (define-public emacs-flymake-popon (package (name "emacs-flymake-popon") -- 2.41.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-09-17 8:31 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-23 20:26 [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server goodoldpaul--- via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via 2022-12-23 20:46 ` [bug#60286] [PATCH 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2022-12-31 16:23 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Abhishek Cherath 2023-01-02 1:52 ` goodoldpaul--- via Guix-patches via 2023-04-12 20:43 ` goodoldpaul--- via Guix-patches via 2023-01-02 2:00 ` [bug#60286] [PATCHv2 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via 2023-01-02 2:00 ` [bug#60286] [PATCHv2 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2023-04-12 20:44 ` [bug#60286] [v3 1/2] gnu: Add guile-scheme-json-rpc Giacomo Leidi via Guix-patches via 2023-04-12 20:44 ` [bug#60286] [v3 2/2] gnu: Add guile-scheme-lsp-server Giacomo Leidi via Guix-patches via 2023-06-21 19:16 ` [bug#60286] [PATCHES] Add guile's implementation for scheme-lsp-server Ricardo G. Herdt 2023-06-21 19:27 ` Ricardo G. Herdt 2023-08-07 9:44 ` Andrew Tropin 2023-09-17 8:29 ` Ricardo G. Herdt 2023-09-05 3:59 ` [bug#60286] [PATCH v2] gnu: Add emacs-flymake-guile Distopico
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.