diff options
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 378 |
1 files changed, 336 insertions, 42 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 6420600d6a..20a34635dd 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1,11 +1,11 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> -;;; Copyright © 2016, 2019, 2020 Eraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2019, 2020, 2021 Eraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> ;;; Copyright © 2016 Amirouche <amirouche@hypermove.net> @@ -33,6 +33,7 @@ ;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net> +;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,6 +83,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages maths) + #:use-module (gnu packages mes) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -101,6 +103,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) @@ -108,6 +111,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix hg-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system guile) @@ -164,7 +168,7 @@ ;; projects. ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (propagated-inputs - `(("guile-json" ,guile-json-1) ; This ia already using guile-2.2. + `(("guile-json" ,guile-json-1) ; This is already using guile-2.2. ("guile-readline" ,guile2.2-readline) ("guile-redis" ,guile2.2-redis))) (native-inputs @@ -744,8 +748,8 @@ It has a nice, simple s-expression based syntax.") (inputs `(("guile" ,guile-2.2))))) (define-public guile-squee - (let ((commit "7dcd22b54fd56c9e629489191bb27ac80ecea9db") - (revision "1")) + (let ((commit "c1497a216e881cfde39d6aa7c73d0bf6b497c89b") + (revision "2")) (package (name "guile-squee") (version (string-append "0-" revision "." (string-take commit 7))) @@ -757,7 +761,7 @@ It has a nice, simple s-expression based syntax.") (file-name (git-file-name name version)) (sha256 (base32 - "1568sk6ada7x9qpfhax0qq1bq93qll1q7nyjrb7h3c1c3lc9sc15")))) + "1alskrplnyl1n5wb39drn72cwplp47a8cpdd1n9cdnw3jhk5p12p")))) (build-system guile-build-system) (arguments '(#:phases @@ -887,6 +891,43 @@ Vicare Scheme and IronScheme. Right now it contains: @end itemize\n") (license license:bsd-3))) +(define-public guile2.0-pg + (package + (name "guile2.0-pg") + (version "0.49") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/guile-pg/guile-pg-" + version ".tar.xz")) + (sha256 + (base32 + "1fizcqga96p9n2jjhi9nprhry20hg9wvcl5b8gya4vhzwz6qhysp")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'install 'patch-src/Makefile + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "src/Makefile" + (("\\/share\\/guile\\/site") "/share/guile/site/2.0")) + #t))))) + (native-inputs + `(("procps" ,procps) ; fake-cluster-control uses ps + ("guile" ,guile-2.0) + ("postgresql" ,postgresql))) + (inputs + `(("guile" ,guile-2.0) + ("postgresql" ,postgresql))) + (home-page "https://www.nongnu.org/guile-pg/") + (synopsis "Guile modules for accessing PostgreSQL") + (description + "Guile-PG is a collection of modules for Guile allowing access to the +PostgreSQL RDBMS from Scheme programs. + +This has been tested against PostgreSQL 10 through 13, but currently only +works with Guile 1.4.x to 2.0.x.") + (license license:gpl3+))) + (define-public guile-prometheus (let ((commit "35dc26c0ea44c3d70f1819f240d84e2cbb4b7b4c") (revision "5")) @@ -1774,6 +1815,37 @@ users and in some situations.") (define-public guile3.0-wisp (deprecated-package "guile3.0-wisp" guile-wisp)) +(define-public guile-udev + (package + (name "guile-udev") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artyom-poptsov/guile-udev") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l6csncjqnx58c6c3wdl7rshnhk4pzhjq2q8lnkg483564s9w5py")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("texinfo" ,texinfo) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("guile" ,guile-3.0) + ("eudev" ,eudev))) + (home-page "https://github.com/artyom-poptsov/guile-udev") + (synopsis "Guile bindings to libudev") + (description + "Guile-Udev provides GNU Guile bindings to libudev.") + (license license:gpl3+))) + (define-public guile-sly (package (name "guile-sly") @@ -2327,7 +2399,9 @@ inspired by the SCSH regular expression system.") `(("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-3.0))) + ;; Depend on the latest Guile to avoid bytecode compatibility issues when + ;; using modules built against the latest version. + `(("guile" ,guile-3.0-latest))) (propagated-inputs `(("guile-reader" ,guile-reader) ("guile-commonmark" ,guile-commonmark))) @@ -2359,7 +2433,7 @@ interface for reading articles in any format.") (define-public guile-redis (package (name "guile-redis") - (version "1.3.0") + (version "2.0.0") (home-page "https://github.com/aconchillo/guile-redis") (source (origin (method git-fetch) @@ -2369,8 +2443,10 @@ interface for reading articles in any format.") (file-name (git-file-name name version)) (sha256 (base32 - "14izs8daxh7pb7vwpxi5g427qa31137jkaxrb1cy5rpjkwchy723")))) + "1zk2x37lw6ygf7rwy71svnsian8lj51axpxmm66ah7dazn69swlm")))) (build-system gnu-build-system) + (arguments + '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -2393,6 +2469,18 @@ key-value cache and store.") (package (inherit guile-redis) (name "guile2.0-redis") + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; put-string is in (rnrs io ports) in guile2.0, + ;; not in (ice-9 textual-ports) + (substitute* "redis/utils.scm" + (("\\(ice-9 textual-ports\\)") + "(rnrs io ports)")) + #t))) + ,@(package-arguments guile-redis))) (native-inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-native-inputs guile-redis)))))) @@ -2418,6 +2506,19 @@ key-value cache and store.") "3.0 2.2 2.0")) #t)))) (build-system gnu-build-system) + ;; The tests throw exceptions with Guile 3.0.5, because they evaluate + ;; (exit ...). + ;; + ;; This has been fixed upstream, but there has not been a new release + ;; containing this change. + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests-when-building-with-guile-3.0.5 + (lambda _ + (substitute* (find-files "tests" "\\.scm$") + (("\\(exit.*") "")) + #t))))) (inputs `(("guile" ,guile-3.0))) (native-inputs @@ -2501,8 +2602,8 @@ format is also supported.") (deprecated-package "guile3.0-mcron" mcron)) (define-public guile-picture-language - (let ((commit "91d10c96708d732145006dd2802acc4de08b632e") - (revision "1")) + (let ((commit "291a746a1d3b4784d38b05239bdd7b8e796ce761") + (revision "4")) (package (name "guile-picture-language") (version (git-version "0.0.1" revision commit)) @@ -2514,14 +2615,17 @@ format is also supported.") (file-name (git-file-name name version)) (sha256 (base32 - "1ydvw9dvssdvlvhh1dr8inyzy2x6m41qgp8hsivca1xysr4gc23a")))) + "0rnhf13ds92sbdicshy4sy4kl2kc431fy9vzm1divw974p7v57sd")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-3.0))) + (propagated-inputs + `(("guile-cairo" ,guile-cairo) + ("guile-rsvg" ,guile-rsvg))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("imagemagick" ,imagemagick) + ("librsvg" ,librsvg) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (home-page "https://git.elephly.net/software/guile-picture-language.git") @@ -2529,24 +2633,29 @@ format is also supported.") (description "This package provides a simple SVG-based picture language for Guile. The picture values can directly be displayed in Geiser.") - (license license:lgpl3+)))) + ;; (pict base64) is under GPLv3+, the rest is under LGPLv3+ + (license (list license:lgpl3+ + license:gpl3+))))) (define-public guile2.2-picture-language (package (inherit guile-picture-language) (name "guile2.2-picture-language") - (inputs `(("guile" ,guile-2.2))))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-cairo" ,guile2.2-cairo) + ("guile-rsvg" ,guile2.2-rsvg))))) (define-public guile3.0-picture-language (deprecated-package "guile3.0-picture-language" guile-picture-language)) (define-public guile-studio - (let ((commit "5c05b03e8a5c450f7358ceec7ea602f29c49d54e") + (let ((commit "93622e788e727d3275291f999f7e570de6a5bb35") (revision "1")) (package (name "guile-studio") - (version (git-version "0.0.3" revision commit)) + (version (git-version "0.1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -2555,7 +2664,7 @@ The picture values can directly be displayed in Geiser.") (file-name (git-file-name name version)) (sha256 (base32 - "11wyf6x7mhyhimv0cd57pl39zgav9hc9ljqi3g2g35b264hylpnx")))) + "0n6y0bcmkx50m8rccz7a6h4yxmwq54pf2bfzpd5ndz2bsiwiq13l")))) (build-system gnu-build-system) (arguments `(#:modules @@ -2564,10 +2673,7 @@ The picture values can directly be displayed in Geiser.") ,@%gnu-build-system-modules) #:tests? #f ; there are none #:make-flags - (list (string-append "ICONS_DIR=" - (assoc-ref %build-inputs "adwaita-icon-theme") - "/share/icons/Adwaita/") - (string-append "PICT_DIR=" + (list (string-append "PICT_DIR=" (assoc-ref %build-inputs "guile-picture-language")) (string-append "EMACS_DIR=" (assoc-ref %build-inputs "emacs")) @@ -2589,13 +2695,19 @@ The picture values can directly be displayed in Geiser.") `(("guile" ,guile-3.0) ("guile-picture-language" ,guile-picture-language) ("emacs" ,emacs) + ("emacs-f" ,emacs-f) ; needed by doom-modeline + ("emacs-memoize" ,emacs-memoize) ; needed by all-the-icons + ("emacs-all-the-icons" ,emacs-all-the-icons) ; needed by doom-modeline + ("emacs-all-the-icons-dired" ,emacs-all-the-icons-dired) + ("emacs-dired-sidebar" ,emacs-dired-sidebar) + ("emacs-doom-modeline" ,emacs-doom-modeline) + ("emacs-modus-themes" ,emacs-modus-themes) ("emacs-geiser" ,emacs-geiser) ("emacs-company" ,emacs-company) + ("emacs-ivy" ,emacs-ivy) ("emacs-flycheck" ,emacs-flycheck) ("emacs-flycheck-guile" ,emacs-flycheck-guile) - ("emacs-smart-mode-line" ,emacs-smart-mode-line) - ("emacs-paren-face" ,emacs-paren-face) - ("adwaita-icon-theme" ,adwaita-icon-theme))) + ("emacs-paren-face" ,emacs-paren-face))) (native-inputs `(("texinfo" ,texinfo))) (home-page "https://gnu.org/software/guile") @@ -2805,14 +2917,14 @@ list of components. This module takes care of that for you.") (define-public guile-gi (package (name "guile-gi") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (string-append "http://lonelycactus.com/tarball/guile_gi-" version ".tar.gz")) (sha256 (base32 - "05xbwrk50h4f9fh8la8fk2wsxbnm0jcyb9phnpkkjq4sqkhkxlbj")))) + "1ljcfyar1nb6h4jskxnnzrcxcsblawc50qqfdn8cax3zqfskmvzj")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--with-gnu-filesystem-hierarchy") @@ -2828,11 +2940,7 @@ list of components. This module takes care of that for you.") (open-pipe* OPEN_READ "guile" "-c" "(display (effective-version))")))) - (substitute* '("module/gi.scm" - "module/gi/oop.scm" - "module/gi/documentation.scm" - "module/gi/types.scm" - "module/gi/repository.scm") + (substitute* (find-files "module" ".*\\.scm") (("\\(load-extension \"libguile-gi\" \"(.*)\"\\)" m arg) (format #f "~s" `(load-extension @@ -3038,18 +3146,35 @@ API.") (version "0.4.1") (source (origin (method url-fetch) - (uri (string-append - "https://download.savannah.nongnu.org/releases/" - name "/" name "-" version ".tar.gz")) + (uri (string-append "mirror://savannah/emacsy/emacsy-" + version ".tar.gz")) (sha256 (base32 - "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np")))) + "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "configure" + ;; Allow builds with Guile 3.0. + (("2\\.2 2\\.0") + "3.0 2.2 2.0") + + ;; Freeglut 3.2 provides 'glut.pc', not 'freeglut.pc'. + (("freeglut >= ") + "glut >= ")) + + (substitute* '("emacsy/emacsy.c" + "example/hello-emacsy.c") + (("#include <libguile\\.h>") + (string-append "#include <stdlib.h>\n" + "#include <stdio.h>\n" + "#include <string.h>\n" + "#include <unistd.h>\n" + "#include <libguile.h>\n"))))))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("bzip2" ,bzip2) - ("guile" ,guile-2.2) + `(("bzip2" ,bzip2) + ("guile" ,guile-3.0) ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("perl" ,perl) @@ -3058,7 +3183,7 @@ API.") ("texlive" ,(texlive-union (list texlive-generic-epsf))))) (inputs `(("dbus-glib" ,dbus-glib) - ("guile" ,guile-2.2) + ("guile" ,guile-3.0) ("guile-lib" ,guile-lib) ("guile-readline" ,guile-readline) ("freeglut" ,freeglut) @@ -4179,6 +4304,38 @@ directory of its argument if it does not exist.") (home-page "https://mkdir-p.divoplade.fr") (license license:asl2.0))) +(define-public guile-jwt + (package + (name "guile-jwt") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aconchillo/guile-jwt") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p8sapiv5im18rjnzc8xnw6y7dr661rycf9g10z5ww0dl4rfz3z1")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile-json" ,guile-json-4))) + (inputs + `(("guile" ,guile-3.0))) + (home-page "https://github.com/aconchillo/guile-jwt") + (synopsis "JSON Web Token library for Guile") + (description + "guile-jwt is a JSON Web Token module for Guile. JSON Web Tokens are an +open, industry standard (RFC 7519) method for representing claims securely +between two parties. guile-jwt allows you to decode, verify and generate +JWT. Supported algorithms: HS256, HS384, HS512.") + (license license:gpl3+))) + (define-public guile-sodium (package (name "guile-sodium") @@ -4266,3 +4423,140 @@ read-capability.") "This project provides a pure Scheme implementation of Protocol Buffers, including parsing and code generation.") (license license:gpl3+))) + +(define-public guile-shapefile + (package + (name "guile-shapefile") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/HugoNikanor/guile-shapefile") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zvrpc8bshw9w0vhdpmhv00j07mzsdyg2f9hfabr83v08zhfi8ml")))) + (build-system guile-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-pre-generated-docs + (lambda _ + (delete-file-recursively "docs") + #t)) + (add-after 'install 'install-info-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((share (string-append (assoc-ref outputs "out") "/share")) + (doc (string-append share "/doc/" ,name "-" ,version)) + (info (string-append share "/info/")) + (makeinfo (string-append (assoc-ref %build-inputs "texinfo") + "/bin/makeinfo"))) + (invoke makeinfo "guile-shapefile.texi" "-o" info) + #t)))))) + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("texinfo" ,texinfo))) + (home-page "https://github.com/HugoNikanor/guile-shapefile") + (synopsis "Parse shapefiles in Guile") + (description + "Guile Shapefile is a Guile library for reading shapefiles.") + (license license:expat))) + +(define-public guile-libyaml + (let ((commit "f5d33a6880e96571d3cb079ed7755ffc156cac46") + (revision "1")) + (package + (name "guile-libyaml") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mwette/guile-libyaml") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12x91983fh1j39zy7kbk19acc1rqdh8515ddx1mh7l26j04k9wgq")))) + (build-system gnu-build-system) + (arguments + `(#:modules (((guix build guile-build-system) + #:prefix guile:) + ,@%gnu-build-system-modules) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:tests? #false ; there are none + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'remove-unused-files + (lambda* (#:key inputs #:allow-other-keys) + (for-each delete-file + '("guix.scm" "demo1.yml" "demo1.scm" + "yaml/libyaml.scm" + ;; This file is mismatched with the generated FFI code. + "yaml/ffi-help-rt.scm")) + (copy-file (string-append (assoc-ref inputs "nyacc") + "/share/guile/site/3.0/system/ffi-help-rt.scm") + "yaml/ffi-help-rt.scm") + (substitute* "yaml/ffi-help-rt.scm" + (("system ffi-help-rt") "yaml ffi-help-rt")) + #true)) + (add-before 'build 'build-ffi + (lambda* (#:key inputs #:allow-other-keys) + (invoke "guild" "compile-ffi" + "--no-exec" ; allow us to patch the generated file + "yaml/libyaml.ffi") + (substitute* "yaml/libyaml.scm" + (("system ffi-help-rt") "yaml ffi-help-rt") + (("dynamic-link \"libyaml\"") + (format #false "dynamic-link \"~a/lib/libyaml\"" + (assoc-ref inputs "libyaml")))) + #true)) + (replace 'build + (assoc-ref guile:%standard-phases 'build)) + (delete 'install)))) + (inputs + `(("guile" ,guile-3.0) + ("libyaml" ,libyaml))) + (propagated-inputs + `(("guile-bytestructures" ,guile-bytestructures))) + (native-inputs + `(("nyacc" ,nyacc))) + (home-page "https://github.com/mwette/guile-libyaml") + (synopsis "Guile wrapper for libyaml") + (description + "This package provides a simple yaml module for Guile using the +ffi-helper from nyacc.") + (license license:lgpl3+)))) + +(define-public schmutz + (let ((commit "add24588c59552537b8f1316df99a0cdd62c221e") + (revision "1")) + (package + (name "schmutz") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arximboldi/schmutz") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1z3n61sj62lnn15mandvyrpjzli07rp9r62ypvgg3a8bvh37yc89")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/arximboldi/schmutz") + (synopsis "Bind C++ code to Scheme") + (description "Schmutz is a header-only library to declare Scheme bindings +for C++ code using a simple embedded DSL. Think of it as @code{Boost.Python} +or @code{LuaBind} but for Scheme.") + (license license:boost1.0)))) |