diff options
author | Yuval Langer <yuval.langer@gmail.com> | 2024-01-14 14:54:10 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-04-17 12:13:01 +0200 |
commit | c872b3bc39cca8cd7344507ce4cdab211a8f3c6f (patch) | |
tree | 9feb428b8428f57f80905e5f681e95d6e1a9bc30 /gnu/packages/guile-xyz.scm | |
parent | 9f1ef201142e0b3369d55cd486e2d7d7da3a4ed7 (diff) | |
download | guix-c872b3bc39cca8cd7344507ce4cdab211a8f3c6f.tar.gz guix-c872b3bc39cca8cd7344507ce4cdab211a8f3c6f.zip |
gnu: Add guile-rsv.
* gnu/packages/guile-xyz.scm (guile-rsv): New variable.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Idede9ef290db92c95ea29f8ad35c9e3a9cdbfa62
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 60 |
1 files changed, 60 insertions, 0 deletions
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 @@ using a short read-capability.") (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") |