From c872b3bc39cca8cd7344507ce4cdab211a8f3c6f Mon Sep 17 00:00:00 2001 From: Yuval Langer Date: Sun, 14 Jan 2024 14:54:10 +0200 Subject: [PATCH] gnu: Add guile-rsv. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile-xyz.scm (guile-rsv): New variable. Co-authored-by: Ludovic Courtès Change-Id: Idede9ef290db92c95ea29f8ad35c9e3a9cdbfa62 --- gnu/packages/guile-xyz.scm | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 49b708b443..c0b0dfd78c 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -5496,6 +5496,66 @@ (define-public guile-eris (home-page "https://codeberg.org/eris/guile-eris") (license license:gpl3+))) +(define-public guile-rsv + (let ((commit "41b04c85eef31d4d51001c6d66e8fd339fcc614c") + (revision "1")) + (package + (name "guile-rsv") + (version (git-version "0.2.0" revision commit)) + (home-page "https://codeberg.org/kakafarm/guile-rsv/") + (source + (origin + (uri (git-reference (url home-page) (commit commit))) + (method git-fetch) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w9jbkpmh13zrxkj915nm3l537smm0jsrdzrzcxylb6w59vqpw6l")))) + (inputs (list guile-3.0 bash)) + (build-system guile-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'install 'link-and-wrap-executable + (lambda _ + (let* ((bin (string-append #$output "/bin")) + ;; bin directory for PATH. + (site-version (target-guile-effective-version)) + (scm (string-append "/share/guile/site/" + site-version)) + (go (string-append "/lib/guile/" site-version + "/site-ccache"))) + (mkdir-p bin) + (for-each (lambda (command-name) + (let ((source-script (string-append #$output + scm "/" + command-name + ".scm")) + (target-command (string-append + bin "/" + command-name))) + (symlink source-script target-command) + (wrap-program target-command + #:sh (which "bash") + `("GUILE_LOAD_PATH" prefix + (,(string-append #$output scm))) + `("GUILE_LOAD_COMPILED_PATH" prefix + (,(string-append #$output go)))))) + (list "scm2rsv" "rsv2scm")))))))) + (synopsis "Reading and writing @acronym{RSV, rows of string values} data format") + (description + "R7RS-small Scheme library for reading and writing @acronym{RSV, rows +of string values} data format, a very simple binary format for storing tables +of strings. It is a competitor for CSV (Comma Seperated Values) and TSV (Tab +Separated Values). Its main benefit is that the strings are represented as +Unicode encoded as UTF-8, and the value and row separators are byte values +that are never used in UTF-8, so the strings do not need any error prone +escaping and thus can be written and read verbatim. + +The RSV format is specified in +@url{https://github.com/Stenway/RSV-Specification}.") + (license license:gpl3+)))) + (define-public guile-r6rs-protobuf (package (name "guile-r6rs-protobuf")