X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/ae0badf5bb791428423a98d4e4e2b8d297a5d4be..69006b0c909eab362854673adc982db976126f69:/gnu/packages/guile-xyz.scm diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index f0f976c3d2..fd16304f3f 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -5,16 +5,16 @@ ;;; Copyright © 2016 Alex Sassmannshausen ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus ;;; Copyright © 2016 Erik Edrosa -;;; Copyright © 2016, 2019 Eraim Flashner +;;; Copyright © 2016, 2019, 2020 Eraim Flashner ;;; Copyright © 2016, 2017 Alex Kost ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2016 Amirouche ;;; Copyright © 2016, 2019 Jan Nieuwenhuizen ;;; Copyright © 2017 Andy Wingo ;;; Copyright © 2017 David Thompson -;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe +;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe ;;; Copyright © 2017 Theodoros Foradis -;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Nikita ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018, 2019, 2020 Arun Isaac @@ -23,8 +23,14 @@ ;;; Copyright © 2019 swedebugia ;;; Copyright © 2019, 2020 Amar Singh ;;; Copyright © 2019 Timothy Sample -;;; Copyright © 2019 Martin Becze +;;; Copyright © 2019, 2020 Martin Becze ;;; Copyright © 2020 Evan Straw +;;; Copyright © 2020 Jack Hill +;;; Copyright © 2020 Julien Lepiler +;;; Copyright © 2020 Marius Bakke +;;; Copyright © 2020 Masaya Tojo +;;; Copyright © 2020 Jesse Gibbons +;;; Copyright © 2020 Mike Rosset ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +67,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages hurd) @@ -97,6 +104,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix hg-download) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system guile) #:use-module (guix utils) @@ -152,9 +160,9 @@ ;; projects. ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (propagated-inputs - `(("guile-json" ,guile-json-1) - ("guile-readline" ,guile-readline) - ("guile-redis" ,guile-redis))) + `(("guile-json" ,guile-json-1) ; This ia already using guile-2.2. + ("guile-readline" ,guile2.2-readline) + ("guile-redis" ,guile2.2-redis))) (native-inputs `(("bash" ,bash) ;for the `source' builtin ("pkgconfig" ,pkg-config) @@ -230,7 +238,7 @@ more.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ijp/guildhall.git") + (url "https://github.com/ijp/guildhall") (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -417,6 +425,7 @@ and then run @command{scm example.scm}.") library for GNU Guile based on the actor model. Note that 8sync is only available for Guile 2.2.") + (properties '((upstream-name . "8sync"))) (license license:lgpl3+))) (define-public guile-daemon @@ -447,26 +456,39 @@ you send to a FIFO file.") (define-public guile-dsv (package (name "guile-dsv") - (version "0.2.1") + (version "0.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/artyom-poptsov/guile-dsv") - (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d"))) + (commit "6c867915dc4198eacc548a4834ef0e1aef852795"))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0")))) + "1mxbbcsmbjfnh4yydqz44ihbkdnzdwz38xanaam128arlb7hwr8n")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-3.0))) (propagated-inputs `(("guile-lib" ,guile-lib))) (arguments - '(#:phases (modify-phases %standard-phases + `(#:modules (((guix build guile-build-system) + #:select (target-guile-effective-version)) + ,@%gnu-build-system-modules) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:phases (modify-phases %standard-phases + ;; Support Guile 3.0 in configure from upstream commit + ;; 4c724577ccf19bb88580f72f2f6b166a0447ce3f + (add-before 'bootstrap 'configure-support-guile3.0 + (lambda _ + (substitute* "configure.ac" + (("GUILE_PKG.*") + "GUILE_PKG([3.0 2.0 2.2])")) + #t)) (add-before 'configure 'set-guilesitedir (lambda _ (substitute* "Makefile.in" @@ -481,6 +503,24 @@ $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) (("^guilesitedir =.*$") "guilesitedir = \ $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (guile-lib (assoc-ref inputs "guile-lib")) + (version (target-guile-effective-version)) + (scm (string-append "/share/guile/site/" + version)) + (go (string-append "/lib/guile/" + version "/site-ccache"))) + (wrap-program (string-append bin "/dsv") + `("GUILE_LOAD_PATH" prefix + (,(string-append out scm) + ,(string-append guile-lib scm))) + `("GUILE_LOAD_COMPILED_PATH" prefix + (,(string-append out go) + ,(string-append guile-lib go))))) #t))))) (home-page "https://github.com/artyom-poptsov/guile-dsv") (synopsis "DSV module for Guile") @@ -490,6 +530,13 @@ delimiter-separated values (DSV) data format. Guile-DSV supports the Unix-style DSV format and RFC 4180 format.") (license license:gpl3+))) +(define-public guile2.2-dsv + (package + (inherit guile-dsv) + (name "guile2.2-dsv") + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs `(("guile-lib" ,guile2.2-lib))))) + (define-public guile-fibers (package (name "guile-fibers") @@ -522,7 +569,10 @@ Unix-style DSV format and RFC 4180 format.") (("#:use-module \\(fibers\\)") (string-append "#:use-module (fibers)\n" "#:use-module (ice-9 threads)\n"))) - #t)))) + #t)) + (patches + ;; fixes a resource leak that causes crashes in the tests + (search-patches "guile-fibers-destroy-peer-schedulers.patch")))) (build-system gnu-build-system) (arguments '(;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0. @@ -622,20 +672,34 @@ HTML (via SXML) or any other format for rendering.") ".tar.gz")) (sha256 (base32 - "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) + "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Allow builds with Guile 3.0. + (substitute* "configure" + (("2\\.2 2\\.0") + "3.0 2.2 2.0")) + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (home-page "https://gitlab.com/dustyweb/guile-sjson") (synopsis "S-expression based json reader/writer for Guile") (description "guile-sjson is a json reader/writer for Guile. It has a nice, simple s-expression based syntax.") (license license:lgpl3+))) +(define-public guile2.2-sjson + (package + (inherit guile-sjson) + (name "guile2.2-sjson") + (inputs `(("guile" ,guile-2.2))))) + (define-public guile-squee (let ((commit "a85902a92bf6f58a1d35fd974a01ade163deda8d") (revision "0")) @@ -667,7 +731,7 @@ It has a nice, simple s-expression based syntax.") (inputs `(("postgresql" ,postgresql))) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (home-page "https://notabug.org/cwebber/guile-squee") (synopsis "Connect to PostgreSQL using Guile") (description @@ -675,14 +739,17 @@ It has a nice, simple s-expression based syntax.") using Guile's foreign function interface.") (license license:lgpl3+)))) -(define-public guile3.0-squee +(define-public guile2.2-squee (package (inherit guile-squee) - (name "guile3.0-squee") - (native-inputs `(("guile" ,guile-next) + (name "guile2.2-squee") + (native-inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-native-inputs guile-squee)))))) +(define-public guile3.0-squee + (deprecated-package "guile3.0-squee" guile-squee)) + (define-public guile-colorized (package (name "guile-colorized") @@ -732,14 +799,6 @@ using Guile's foreign function interface.") (arguments '(#:source-directory "src" #:phases (modify-phases %standard-phases - (add-after 'unpack 'work-around-guile-bug - (lambda _ - ;; See bug #39210. - (substitute* '("fingertrees.sls" - "queues/private/condition.sls" - "deques/private/condition.sls") - (("&assertion") "&violation")) - #t)) (add-after 'unpack 'move-files-around (lambda _ ;; Move files under a pfds/ directory to reflect the @@ -880,8 +939,8 @@ messaging library.") (deprecated-package "guile3.0-simple-zmq" guile-simple-zmq)) (define-public jupyter-guile-kernel - (let ((commit "a7db9245a886e104138474df46c3e88b95cff629") - (revision "1")) + (let ((commit "f25fb90b95529b17a006a807bd04e6aee12ea304") + (revision "2")) (package (name "jupyter-guile-kernel") (version (git-version "0.0.0" revision commit)) @@ -894,7 +953,7 @@ messaging library.") (file-name (git-file-name name version)) (sha256 (base32 - "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f")))) + "0zr1fasdb2yv9kn21yll993y9higqss4jnfs030ndhjb93raa9sr")))) (build-system guile-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -929,7 +988,7 @@ messaging library.") ;; Fix hard-coded file name in the kernel. (substitute* (string-append dir "/kernel.json") - (("/home/.*/guile-jupyter-kernel.scm") + (("/usr/local/.*/guile-jupyter-kernel.scm") (string-append out "/share/guile/site/" (target-guile-effective-version) "/guile-jupyter-kernel.scm")) @@ -950,17 +1009,17 @@ messaging library.") effective "/site-ccache\"")) deps))) - (string-append "--no-auto-compile\"" - (string-join -L ", \"-L\", " - 'prefix) - (string-join -C ", \"-C\", " - 'prefix) - ", \"-s")))) + (string-append "--no-auto-compile\"" + (string-join -L ", \"-L\", " + 'prefix) + (string-join -C ", \"-C\", " + 'prefix) + ", \"-s")))) #t)))))) (inputs `(("openssl" ,openssl) - ("guile" ,guile-2.2) - ("guile-json" ,guile-json-1) + ("guile" ,guile-3.0) + ("guile-json" ,guile-json-3) ("guile-simple-zmq" ,guile-simple-zmq))) (synopsis "Guile kernel for the Jupyter Notebook") (description @@ -1008,7 +1067,7 @@ using S-expressions.") (propagated-inputs `(("guile-email" ,guile-email))) (native-inputs - `(("guile" ,guile-2.2) + `(("guile" ,guile-3.0) ("pkg-config" ,pkg-config))) (home-page "https://savannah.gnu.org/projects/guile-debbugs/") (synopsis "Guile interface to the Debbugs bug tracking service") @@ -1035,7 +1094,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") `(("pkg-config" ,pkg-config) ("lzip" ,lzip))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings (home-page "https://guile-email.systemreboot.net") @@ -1046,17 +1105,20 @@ Extensions) compliant email messages and reading emails from the mbox format.") (license license:agpl3+))) -(define-public guile3.0-email +(define-public guile2.2-email (package (inherit guile-email) - (name "guile3.0-email") - (inputs `(("guile" ,guile-next) + (name "guile2.2-email") + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-email)))))) +(define-public guile3.0-email + (deprecated-package "guile3.0-email" guile-email)) + (define-public guile-newt (package (name "guile-newt") - (version "0.0.1") + (version "0.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -1065,20 +1127,7 @@ format.") (file-name (git-file-name name version)) (sha256 (base32 - "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Allow builds with Guile 3.0. - (substitute* "configure.ac" - (("^GUILE_PKG.*") - "GUILE_PKG([3.0 2.2 2.0])\n")) - - ;; Remove "guile.m4" since it contains an obsolete version - ;; of 'GUILE_PKG' that doesn't work with development - ;; versions such as 2.9. - (delete-file "m4/guile.m4") - #t)))) + "1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09")))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -1102,7 +1151,7 @@ Scheme by using Guile’s foreign function interface.") (package (inherit guile-newt) (name "guile2.2-newt") - (inputs `(("guile" ,guile-next) + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-newt)))))) (define-public guile3.0-newt @@ -1140,7 +1189,7 @@ microblogging service.") (define-public guile-parted (package (name "guile-parted") - (version "0.0.2") + (version "0.0.4") (source (origin (method git-fetch) (uri (git-reference @@ -1149,20 +1198,8 @@ microblogging service.") (file-name (git-file-name name version)) (sha256 (base32 - "01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Allow builds with Guile 3.0. - (substitute* "configure.ac" - (("^GUILE_PKG.*") - "GUILE_PKG([3.0 2.2 2.0])\n")) - - ;; Remove "guile.m4" since it contains an obsolete version - ;; of 'GUILE_PKG' that doesn't work with development - ;; versions such as 2.9. - (delete-file "m4/guile.m4") - #t)))) + "0b7h8psfm9gmmwb65pp5zwzglvwnfmw5j40g09hhf3f7kwxc0mv2")) + (modules '((guix build utils))))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -1188,7 +1225,7 @@ written in pure Scheme by using Guile's foreign function interface.") (package (inherit guile-parted) (name "guile2.2-parted") - (inputs `(("guile" ,guile-next) + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-parted)))) (propagated-inputs `(("guile-bytestructures" ,guile2.2-bytestructures))))) @@ -1317,7 +1354,7 @@ SQL databases. This package implements the interface for SQLite.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/opencog/guile-dbi.git") + (url "https://github.com/opencog/guile-dbi") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1365,16 +1402,16 @@ PostgreSQL.") (define-public guile-config (package (name "guile-config") - (version "0.3.1") + (version "0.4.2") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/a-sassmannshausen/guile-config") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0gglsqwpw77gvrqcny8irpqfl7qdf2v8n9ggwrswanxalj4vcbvf")))) + "09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1409,16 +1446,16 @@ above command-line parameters.") (define-public guile-hall (package (name "guile-hall") - (version "0.2.1") + (version "0.3.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/a-sassmannshausen/guile-hall") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 (base32 - "0dwx5iyg0dmdf64wq0b4w306bapr86jwnw35npgbjq4cqm8qbzqn")))) + (commit version))) + (file-name "guile-hall-0.3.1-checkout") + (sha256 + (base32 "1s24nigdra6rvclvy15l2aw00c3aq9vv8qwxylzs60darbl36206")))) (build-system gnu-build-system) (arguments `(#:modules @@ -1691,6 +1728,92 @@ capabilities.") (home-page "https://dthompson.us/projects/sly.html") (license license:gpl3+))) +(define-public g-golf + (let ((commit "5d2903afb4b6b65c22f587835d8fdff91916e5ee")) + (package + (name "g-golf") + (version (git-version "1" "804" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/g-golf.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xkb6a5d3i9s8lpb5cf06bd64p5srqnnhn5l0b2f5csbvyz8hmmh")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server))) + (inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile2.2-lib) + ("clutter" ,clutter) + ("gtk" ,gtk+) + ("glib" ,glib))) + (propagated-inputs + `(("gobject-introspection" ,gobject-introspection))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'tests-work-arounds + (lambda* (#:key inputs #:allow-other-keys) + ;; In build environment, There is no /dev/tty + (substitute* + "test-suite/tests/gobject.scm" + (("/dev/tty") "/dev/null")))) + (add-before 'configure 'substitute-libs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((get (lambda (key lib) + (string-append (assoc-ref inputs key) "/lib/" lib))) + (libgi (get "gobject-introspection" "libgirepository-1.0")) + (libglib (get "glib" "libglib-2.0")) + (libgobject (get "glib" "libgobject-2.0")) + (libgdk (get "gtk" "libgdk-3"))) + (substitute* "configure" + (("SITEDIR=\"\\$datadir/g-golf\"") + "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"") + (("SITECCACHEDIR=\"\\$libdir/g-golf/") + "SITECCACHEDIR=\"$libdir/")) + (substitute* "g-golf/init.scm" + (("libgirepository-1.0") libgi) + (("libglib-2.0") libglib) + (("libgdk-3") libgdk) + (("libgobject-2.0") libgobject) + (("\\(dynamic-link \"libg-golf\"\\)") + (format #f "~s" + `(dynamic-link + (format #f "~alibg-golf" + (if (getenv "GUILE_GGOLF_UNINSTALLED") + "" + ,(format #f "~a/lib/" + (assoc-ref outputs "out")))))))) + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "GUILE_GGOLF_UNINSTALLED" "1") + #t))) + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (format #f "~a/bin/Xvfb :1 &" + (assoc-ref inputs "xorg-server"))) + (setenv "DISPLAY" ":1") + #t))))) + (home-page "https://www.gnu.org/software/g-golf/") + (synopsis "Guile bindings for GObject Introspection") + (description + "G-Golf (Gnome: (Guile Object Library for)) is a library for developing +modern applications in Guile Scheme. It comprises a direct binding to the +GObject Introspection API and higher-level functionality for importing Gnome +libraries and making GObject classes (and methods) available in Guile's +object-oriented programming system, GOOPS.") + (license license:lgpl3+)))) + (define-public g-wrap (package (name "g-wrap") @@ -1739,7 +1862,7 @@ provides access to that interface and its types from the Scheme level.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/fisherdj/miniAdapton.git") + (url "https://github.com/fisherdj/miniAdapton") (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -1763,18 +1886,18 @@ understand, extend, and port to host languages other than Scheme.") (define-public guile-reader (package (name "guile-reader") - (version "0.6.2") + (version "0.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-reader/guile-reader-" version ".tar.gz")) (sha256 (base32 - "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx")))) + "1fyjckmygkhq22lq8nqc86yl5zzbqd7a944dnz5c1f6vx92b9hiq")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config) - ("gperf" ,gperf-3.0))) - (inputs `(("guile" ,guile-2.2))) + ("gperf" ,gperf))) + (inputs `(("guile" ,guile-3.0))) (synopsis "Framework for building readers for GNU Guile") (description "Guile-Reader is a simple framework for building readers for GNU Guile. @@ -1791,6 +1914,12 @@ many readers as needed).") (home-page "https://www.nongnu.org/guile-reader/") (license license:gpl3+))) +(define-public guile2.2-reader + (package + (inherit guile-reader) + (name "guile2.2-reader") + (inputs `(("guile" ,guile-2.2))))) + (define-public guile-ncurses (package (name "guile-ncurses") @@ -1804,10 +1933,16 @@ many readers as needed).") "038xbffalhymg26lvmzgf7ljilxz2f2zmqg5r5nfzbipfbprwjhf")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:configure-flags (list "--with-ncursesw" ; Unicode support + `(#:modules ((guix build gnu-build-system) + ((guix build guile-build-system) + #:select (target-guile-effective-version)) + (guix build utils)) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:configure-flags (list "--with-ncursesw" ; Unicode support "--with-gnu-filesystem-hierarchy") #:phases (modify-phases %standard-phases @@ -1822,8 +1957,8 @@ many readers as needed).") (files (find-files dir ".scm"))) (substitute* files (("\"libguile-ncurses\"") - (format #f "\"~a/lib/guile/2.2/libguile-ncurses\"" - out))) + (format #f "\"~a/lib/guile/~a/libguile-ncurses\"" + out (target-guile-effective-version)))) #t)))))) (home-page "https://www.gnu.org/software/guile-ncurses/") (synopsis "Guile bindings to ncurses") @@ -1832,6 +1967,16 @@ many readers as needed).") library.") (license license:lgpl3+))) +(define-public guile2.2-ncurses + (package + (inherit guile-ncurses) + (name "guile2.2-ncurses") + (inputs `(("ncurses" ,ncurses) + ("guile" ,guile-2.2))))) + +(define-public guile3.0-ncurses + (deprecated-package "guile3.0-ncurses" guile-ncurses)) + (define-public guile-ncurses/gpm (package (inherit guile-ncurses) @@ -1839,6 +1984,13 @@ library.") (inputs `(("ncurses" ,ncurses/gpm) ("guile" ,guile-2.2))))) +(define-public guile3.0-ncurses/gpm + (package + (inherit guile3.0-ncurses) + (name "guile3.0-ncurses-with-gpm") + (inputs `(("ncurses" ,ncurses/gpm) + ("guile" ,guile-3.0))))) + (define-public guile-lib (package (name "guile-lib") @@ -1913,7 +2065,7 @@ for Guile\".") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ijp/minikanren.git") + (url "https://github.com/ijp/minikanren") (commit "e844d85512f8c055d3f96143ee506007389a25e3"))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -2072,8 +2224,7 @@ inspired by the SCSH regular expression system.") (inputs `(("guile" ,guile-3.0))) (propagated-inputs - ;; XXX: Guile-Reader is currently unavailable for Guile 2.2 so strip it. - `(;;("guile-reader" ,guile-reader) + `(("guile-reader" ,guile-reader) ("guile-commonmark" ,guile-commonmark))) (synopsis "Functional static site generator") (description "Haunt is a static site generator written in Guile @@ -2088,7 +2239,7 @@ interface for reading articles in any format.") (name "guile2.2-haunt") (inputs `(("guile" ,guile-2.2))) (propagated-inputs - `(("guile-reader" ,guile-reader) + `(("guile-reader" ,guile2.2-reader) ("guile-commonmark" ,guile2.2-commonmark))))) (define-public guile2.0-haunt @@ -2119,12 +2270,20 @@ interface for reading articles in any format.") `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (synopsis "Redis client library for Guile") (description "Guile-redis provides a Scheme interface to the Redis key-value cache and store.") (license license:lgpl3+))) +(define-public guile2.2-redis + (package + (inherit guile-redis) + (name "guile2.2-redis") + (native-inputs `(("guile" ,guile-2.2) + ,@(alist-delete "guile" + (package-native-inputs guile-redis)))))) + (define-public guile2.0-redis (package (inherit guile-redis) @@ -2186,22 +2345,17 @@ is no support for parsing block and inline level HTML.") (define-public mcron (package (name "mcron") - (version "1.1.3") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mcron/mcron-" version ".tar.gz")) (sha256 (base32 - "00kv7fgllzjpis0g1m9csycp4f6l11774m09dqy255cvmim2g743")))) + "1midrn15d5kqy4zd2029bj1db6gnfhxg8mcgfy4bkp5p9nl4v4rd")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-finding-guile - (lambda _ - (substitute* "configure" - (("2\\.0") "3.0 2.2 2.0")) - #t)) (add-before 'check 'adjust-tests (lambda _ (substitute* "tests/job-specifier.scm" @@ -2219,7 +2373,9 @@ is no support for parsing block and inline level HTML.") (string-append "(test-skip 4)\n" all))) #t))))) (native-inputs `(("pkg-config" ,pkg-config) - ("tzdata" ,tzdata-for-tests))) + ("tzdata" ,tzdata-for-tests) + ("guile-native" ;for 'guild compile' + ,@(assoc-ref (package-inputs this-package) "guile")))) (inputs `(("guile" ,guile-3.0))) (home-page "https://www.gnu.org/software/mcron/") (synopsis "Run jobs at scheduled times") @@ -2281,226 +2437,228 @@ The picture values can directly be displayed in Geiser.") guile-picture-language)) (define-public guile-studio - (package - (name "guile-studio") - (version "0.0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.elephly.net/software/guile-studio.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10ls4ra148hd9ra7sin4kh9vv0am5pwk48p7dsjhrlg2l1hsh4hi")))) - (build-system gnu-build-system) - (arguments - `(#:modules - ((ice-9 match) - (srfi srfi-1) - ,@%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=" - (assoc-ref %build-inputs "guile-picture-language")) - (string-append "EMACS_DIR=" - (assoc-ref %build-inputs "emacs")) - (string-append "GUILE_DIR=" - (assoc-ref %build-inputs "guile")) - (string-join (cons "INPUTS=" - (filter-map - (lambda (input) - (match input - ((label . pkg) - (and (string-prefix? "emacs" label) pkg)))) - %build-inputs))) - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'install)))) - (inputs - `(("guile" ,guile-2.2) - ("guile-picture-language" ,guile-picture-language) - ("emacs" ,emacs) - ("emacs-geiser" ,emacs-geiser) - ("emacs-company" ,emacs-company) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-smart-mode-line" ,emacs-smart-mode-line) - ("emacs-paren-face" ,emacs-paren-face) - ("adwaita-icon-theme" ,adwaita-icon-theme))) - (native-inputs - `(("texinfo" ,texinfo))) - (home-page "https://gnu.org/software/guile") - (synopsis "IDE for Guile") - (description - "This is Emacs with a few settings that make working with Guile easier -for people new to Emacs. Features include: CUA mode, Geiser, tool bar icons -to evaluate Guile buffers, support for Guile's very own picture language, code -completion, a simple mode line, etc.") - (license license:gpl3+))) - -(define-public guile-stis-parser - (let ((commit "6e85d37ffc333b722f4413a6c648263701eb75bd") + (let ((commit "5c05b03e8a5c450f7358ceec7ea602f29c49d54e") (revision "1")) (package - (name "guile-stis-parser") - (version (git-version "0" revision commit)) + (name "guile-studio") + (version (git-version "0.0.3" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/tampe/stis-parser") + (url "https://git.elephly.net/software/guile-studio.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0v4hvq7rlpbra1ni73lf8k6sdmjlflr50yi3p1f24g85h77pc7c0")))) + "11wyf6x7mhyhimv0cd57pl39zgav9hc9ljqi3g2g35b264hylpnx")))) (build-system gnu-build-system) (arguments - `(#:parallel-build? #f ; not supported + `(#:modules + ((ice-9 match) + (srfi srfi-1) + ,@%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=" + (assoc-ref %build-inputs "guile-picture-language")) + (string-append "EMACS_DIR=" + (assoc-ref %build-inputs "emacs")) + (string-append "GUILE_DIR=" + (assoc-ref %build-inputs "guile")) + (string-join (cons "INPUTS=" + (filter-map + (lambda (input) + (match input + ((label . pkg) + (and (string-prefix? "emacs" label) pkg)))) + %build-inputs))) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "modules") #t)) - (add-after 'chdir 'use-canonical-directory-for-go-files - (lambda _ - (substitute* "Makefile.am" - (("/ccache") "/site-ccache")) - #t)) - (add-after 'chdir 'delete-broken-symlink - (lambda _ - (delete-file "parser/stis-parser/lang/.#calc.scm") - #t))))) + (delete 'configure) + (delete 'install)))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0) + ("guile-picture-language" ,guile-picture-language) + ("emacs" ,emacs) + ("emacs-geiser" ,emacs-geiser) + ("emacs-company" ,emacs-company) + ("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))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (home-page "https://gitlab.com/tampe/stis-parser") - (synopsis "Parser combinator framework") + `(("texinfo" ,texinfo))) + (home-page "https://gnu.org/software/guile") + (synopsis "IDE for Guile") (description - "This package provides a functional parser combinator library that + "This is Emacs with a few settings that make working with Guile easier +for people new to Emacs. Features include: CUA mode, Geiser, tool bar icons +to evaluate Guile buffers, support for Guile's very own picture language, code +completion, a simple mode line, etc.") + (license license:gpl3+)))) + +(define-public guile-stis-parser + (package + (name "guile-stis-parser") + (version "1.2.4.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/tampe/stis-parser") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fvxdfvc80zqhwzq5x3kxyr6j8p4b51yx85fx1gr3d4gy2ddpx5w")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; not supported + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "modules") #t)) + (add-after 'chdir 'delete-broken-symlink + (lambda _ + (delete-file "parser/stis-parser/lang/.#calc.scm") + #t))))) + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (home-page "https://gitlab.com/tampe/stis-parser") + (synopsis "Parser combinator framework") + (description + "This package provides a functional parser combinator library that supports backtracking and a small logical framework. The idea is to build up chunks that are memoized and there is no clear scanner/parser separation, chunks can be expressions as well as simple tokens.") - (license license:lgpl2.0+)))) + (license license:lgpl2.0+))) (define-public guile-persist - (let ((commit "b14927b0368af51c024560aee5f55724aee35233") - (revision "1")) - (package - (name "guile-persist") - (version (git-version "0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/tampe/guile-persist") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Install .go files in the right place. - (substitute* "Makefile.am" - (("/ccache") "/site-ccache")) - #t)))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-prefix - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "src/Makefile.am" - (("/usr/local/lib/guile") - (string-append (assoc-ref outputs "out") "/lib/guile")) - (("/usr/local/include/guile") - (string-append (assoc-ref inputs "guile") "/include/guile")) - (("-L/usr/local/lib") - (string-append "-L" (assoc-ref inputs "guile") "/lib")) - ;; Use canonical directory for go files. - (("/ccache") "/site-ccache")) - #t)) - (add-after 'unpack 'patch-library-reference - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "persist/persistance.scm" - (("\"libguile-persist\"") - (format #f "\"~a/lib/guile/2.2/extensions/libguile-persist\"" out))) - #t)))))) - (inputs - `(("guile" ,guile-2.2))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) - (home-page "https://gitlab.com/tampe/guile-persist") - (synopsis "Persistence programming framework for Guile") - (description - "This is a serialization library for serializing objects like classes + (package + (name "guile-persist") + (version "1.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/tampe/guile-persist") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19f8hqcax4v40858kx2j8fy1cvzc2djj99r0n17dy1xxmwa097qi")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-prefix + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "src/Makefile.am" + (("/usr/local/lib/guile") + (string-append (assoc-ref outputs "out") "/lib/guile")) + (("/usr/local/include/guile") + (string-append (assoc-ref inputs "guile") "/include/guile")) + (("-L/usr/local/lib") + (string-append "-L" (assoc-ref inputs "guile") "/lib"))) + #t)) + (add-after 'unpack 'patch-library-reference + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "persist/persistance.scm" + (("\"libguile-persist\"") + (format #f "\"~a/lib/guile/3.0/extensions/libguile-persist\"" out))) + #t)))))) + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://gitlab.com/tampe/guile-persist") + (synopsis "Persistence programming framework for Guile") + (description + "This is a serialization library for serializing objects like classes and objects, closures and structs. This currently does not support serializing continuations or delimited continuations.") - (license license:lgpl2.0+)))) + (license license:lgpl2.0+))) (define-public python-on-guile - (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f") - (revision "3")) - (package - (name "python-on-guile") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.elephly.net/software/python-on-guile.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68")))) - (build-system gnu-build-system) - (arguments - `(#:parallel-build? #f ; not supported - #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings - - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "modules") #t)) - (add-after 'install 'wrap - (lambda* (#:key outputs #:allow-other-keys) - ;; Wrap the 'python' executable so it can find its - ;; dependencies. - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/python") - `("GUILE_LOAD_PATH" ":" prefix - (,(getenv "GUILE_LOAD_PATH"))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,(getenv "GUILE_LOAD_COMPILED_PATH")))) - #t)))))) - (inputs - `(("guile" ,guile-2.2))) - (propagated-inputs - `(("guile-persist" ,guile-persist) - ("guile-readline" ,guile-readline) - ("guile-stis-parser" ,guile-stis-parser))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) - (home-page "https://gitlab.com/python-on-guile/python-on-guile/") - (synopsis "Python implementation in Guile") - (description - "This package allows you to compile a Guile Python file to any target + (package + (name "python-on-guile") + (version "1.2.3.5") + (home-page "https://gitlab.com/python-on-guile/python-on-guile") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05xrvcj6a4gzq1ybyin270qz8wamgc7w2skyi9iy6hkpgdhxy8vf")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ;not supported + #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "modules") #t)) + (add-after 'chdir 'augment-GUILE_LOAD_PATH + (lambda _ + ;; TODO: It would be better to patch the Makefile. + (setenv "GUILE_LOAD_PATH" + (string-append ".:" + (getenv "GUILE_LOAD_PATH"))) + #t)) + (add-after 'install 'wrap + (lambda* (#:key outputs #:allow-other-keys) + ;; Wrap the 'python' executable so it can find its + ;; dependencies and own modules. + (let* ((out (assoc-ref outputs "out")) + (guile-version ,(version-major+minor + (package-version guile-3.0))) + (scm (string-append out "/share/guile/site/" + guile-version)) + (ccache (string-append out "/lib/guile/" guile-version + "/site-ccache")) + (load-path (string-join + (cons scm + ;; XXX: cdr because we augment it above. + (cdr (string-split + (getenv "GUILE_LOAD_PATH") #\:))) + ":")) + (compiled-path (string-append + ccache ":" + (getenv "GUILE_LOAD_COMPILED_PATH")))) + (wrap-program (string-append out "/bin/python") + `("GUILE_LOAD_PATH" ":" prefix + (,load-path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,compiled-path))) + #t)))))) + (inputs + `(("guile" ,guile-3.0) + ("guile-persist" ,guile-persist) + ("guile-readline" ,guile-readline) + ("guile-stis-parser" ,guile-stis-parser))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (synopsis "Python implementation in Guile") + (description + "This package allows you to compile a Guile Python file to any target from @code{tree-il}.") - (license license:lgpl2.0+)))) + (license license:lgpl2.0+))) (define-public guile-file-names (package @@ -2542,18 +2700,18 @@ list of components. This module takes care of that for you.") (define-public guile-gi (package (name "guile-gi") - (version "0.2.2") + (version "0.3.0") (source (origin (method url-fetch) (uri (string-append "http://lonelycactus.com/tarball/guile_gi-" version ".tar.gz")) (sha256 (base32 - "1v82kz8mz7wgq6w5llaz8a2wwdnl8vk2667dpjwjxscl0qyxsy6y")))) - (build-system gnu-build-system) + "05xbwrk50h4f9fh8la8fk2wsxbnm0jcyb9phnpkkjq4sqkhkxlbj")))) + (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--with-gnu-filesystem-hierarchy") - #:modules ((guix build gnu-build-system) + #:modules ((guix build glib-or-gtk-build-system) (guix build utils) (ice-9 popen) (ice-9 rdelim)) @@ -2576,7 +2734,7 @@ list of components. This module takes care of that for you.") (format #f "~alibguile-gi" (if (getenv "GUILE_GI_UNINSTALLED") "" - ,(format #f "~a/lib/guile/~a/" + ,(format #f "~a/lib/guile/~a/extensions/" (assoc-ref outputs "out") effective))) ,arg))))) @@ -2590,7 +2748,7 @@ list of components. This module takes care of that for you.") (setenv "DISPLAY" ":1") #t))))) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-compile-resources ("libtool" ,libtool) ("pkg-config" ,pkg-config) @@ -2615,13 +2773,91 @@ pre-alpha code.") (package (inherit guile-gi) (name "guile2.2-gi") - (native-inputs + (inputs `(("guile" ,guile-2.2) - ,@(package-native-inputs guile-gi))))) + ,@(alist-delete "guile" (package-inputs guile-gi)))))) (define-public guile3.0-gi (deprecated-package "guile3.0-gi" guile-gi)) +(define-public guile-srfi-89 + (package + (name "guile-srfi-89") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mjbecze/guile-srfi-89.git") + (commit version))) + (sha256 + (base32 + "1981c0rrzxqx3md9jx8ir7j3m2mzg9m72b33p5jvw36zirbzpl20")) + (file-name (git-file-name name version)))) + (build-system guile-build-system) + (native-inputs + `(("guile" ,guile-3.0))) + (home-page "https://gitlab.com/mjbecze/guile-srfi-89") + (synopsis "Hygienic implementation of SRFI-89 for Guile") + (description + "This package provides SRFI-89 optional positional and named +parameters, which define* and lambda* special forms") + (license license:gpl3+))) + +(define-public guile-srfi-145 + (package + (name "guile-srfi-145") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mjbecze/guile-srfi-145.git") + (commit version))) + (sha256 + (base32 + "1gssa8cmcp8640fil9z8dpil8v5l279wlalqjcx3fls5jwv13q1b")) + (file-name (git-file-name name version)))) + (build-system guile-build-system) + (native-inputs + `(("guile" ,guile-3.0))) + (home-page "https://gitlab.com/mjbecze/guile-srfi-145") + (synopsis "SRFI-145 port for Guile") + (description + "This package provides SRFI-145. This provides the means to +denote the invalidity of certain code paths in a Scheme program.") + (license license:gpl3+))) + +(define-public guile-srfi-158 + (package + (name "guile-srfi-158") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mjbecze/guile-srfi-158.git") + (commit version))) + (sha256 + (base32 + "0b8hlv1bldbcwkcxi9y8mm6xp5gbgpg7b15bwqxv70iynl9d9a7c")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-3.0))) + (home-page "https://gitlab.com/samplet/guile-srfi-158") + (synopsis "SRFI 158 (Generators and Accumulators) for Guile") + (description "This package provides an implementation of SRFI 158 +for Guile. SRFI 158 defines utility procedures that create, +transform, and consume generators. It also defines procedures that +return accumulators. It is implemented by wrapping the sample +implementation in a thin Guile compatibility layer.") + (license license:gpl3+))) + (define-public guile-srfi-159 (let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb") (revision "0")) @@ -2670,7 +2906,7 @@ more expressive and flexible than the traditional @code{format} procedure.") ("automake" ,automake) ("bzip2" ,bzip2) ("guile" ,guile-2.2) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("perl" ,perl) ("pkg-config" ,pkg-config) @@ -2734,11 +2970,11 @@ in C using Gtk+-3 and WebKitGtk.") (license license:gpl3+))) (define-public emacsy-minimal - (let ((commit "f3bf0dbd803d7805b6ae8303253507ad13922293")) + (let ((commit "v0.4.1-28-gd459ca1")) (package (inherit emacsy) (name "emacsy-minimal") - (version (git-version "v0.4.1" "19" commit)) + (version (string-drop commit 1)) (source (origin (method git-fetch) (uri (git-reference @@ -2747,12 +2983,12 @@ in C using Gtk+-3 and WebKitGtk.") (file-name (git-file-name name version)) (sha256 (base32 - "0ivy28km1p7nlrf63xx3hvrpxf5ld5amk1wcan3k7sqv1kq9mqdb")))) + "1ps15w8cxj9kc18gmvys9jv9xa1qqa7m43ismv34l3cmhddrn0sr")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-2.2) - ("guile-lib" ,guile-lib) - ("guile-readline" ,guile-readline))) + ("guile-lib" ,guile2.2-lib) + ("guile-readline" ,guile2.2-readline))) (propagated-inputs '()) (arguments `(#:configure-flags '("--without-examples") @@ -2800,7 +3036,7 @@ perform geometrical transforms on JPEG images.") (define-public nomad (package (name "nomad") - (version "0.1.2-alpha") + (version "0.2.0-alpha") (source (origin (method git-fetch) (uri (git-reference @@ -2809,7 +3045,7 @@ perform geometrical transforms on JPEG images.") (file-name (git-file-name name version)) (sha256 (base32 - "1dnkr1hmvfkwgxd75dcf93pg39yfgawvdpzdhv991yhghv0qxc9h")))) + "1z2z5x37v1qrk2vb8qlz2yj030iirzzd0maa9fjxzlqkrg6krbaj")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -2823,21 +3059,32 @@ perform geometrical transforms on JPEG images.") ("perl" ,perl))) (inputs `(("guile" ,guile-2.2) - ("guile-lib" ,guile-lib) - ("guile-gcrypt" ,guile-gcrypt) - ("guile-readline" ,guile-readline) + ("guile-lib" ,guile2.2-lib) + ("guile-readline" ,guile2.2-readline) + ("guile-gcrypt" ,guile2.2-gcrypt) ("gnutls" ,gnutls) ("shroud" ,shroud) ("emacsy" ,emacsy-minimal) ("glib" ,glib) ("dbus-glib" ,dbus-glib) ("gtk+" ,gtk+) + ("gtk+:bin" ,gtk+ "bin") ("gtksourceview" ,gtksourceview) ("webkitgtk" ,webkitgtk) + ("g-golf" ,g-golf) ("xorg-server" ,xorg-server))) (propagated-inputs `(("glib" ,glib) ("glib-networking" ,glib-networking) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gst-plugins-bad" ,gst-plugins-bad) + ("gst-plugins-ugly" ,gst-plugins-ugly) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("vte" ,vte) + ("webkitgtk" ,webkitgtk) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) (arguments `(#:modules ((guix build gnu-build-system) @@ -2857,9 +3104,16 @@ perform geometrical transforms on JPEG images.") (add-after 'install 'wrap-binaries (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (gio-deps (map (cut assoc-ref inputs <>) '("glib-networking" - "glib"))) - (gio-mod-path (map (cut string-append <> "/lib/gio/modules") + (gio-deps (map (cut assoc-ref inputs <>) + '("glib-networking" + "glib" + "gstreamer" + "gst-plugins-base" + "gst-plugins-good" + "gst-plugins-bad" + "gst-plugins-ugly"))) + (gio-mod-path (map (cut string-append <> + "/lib/gio/modules") gio-deps)) (effective (read-line (open-pipe* OPEN_READ @@ -2867,7 +3121,7 @@ perform geometrical transforms on JPEG images.") "(display (effective-version))"))) (deps (map (cut assoc-ref inputs <>) '("emacsy" "guile-lib" "guile-readline" - "shroud"))) + "g-golf" "shroud"))) (scm-path (map (cut string-append <> "/share/guile/site/" effective) `(,out ,@deps))) @@ -2883,12 +3137,19 @@ perform geometrical transforms on JPEG images.") prefix ,go-path)) progs) #t)))))) + (native-search-paths + (list (search-path-specification + (variable "GI_TYPELIB_PATH") + (separator ":") + (files '("lib/girepository-1.0"))) + (search-path-specification + (variable "NOMAD_WEB_EXTENSION_DIR") + (separator ":") + (files '("libexec/nomad"))))) (home-page "https://savannah.nongnu.org/projects/nomad/") (synopsis "Extensible Web Browser in Guile Scheme") - (description "Nomad is an Emacs-like Web Browser built using Webkitgtk and -Emacsy. It has a small C layer and most browser features are fully -programmable in Guile. It has hooks, keymaps, and self documentation -features.") + (description "Nomad is a Emacs-like web browser that consists of a modular +feature-set, fully programmable in Guile Scheme.") (license license:gpl3+))) (define-public guile-cv @@ -2964,7 +3225,7 @@ clean and easy to use high level API.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/lloda/guile-ffi-fftw.git") + (url "https://github.com/lloda/guile-ffi-fftw") (commit commit))) (file-name (git-file-name "guile-ffi-fftw" version)) (sha256 @@ -3111,11 +3372,111 @@ SHA-512).") (inherit guile-hashing) (name "guile2.2-hashing") (native-inputs - `(("guile" ,guile-next))))) + `(("guile" ,guile-2.2))))) (define-public guile3.0-hashing (deprecated-package "guile3.0-hashing" guile-hashing)) +(define-public guile-packrat + (package + (name "guile-packrat") + (version "0.1.1") + (home-page "https://github.com/weinholt/packrat") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aga17164fkhbgllqc7ni6fk5zl8mkmgkl5zcsy67x7ngpyalbby")))) + (build-system guile-build-system) + (arguments + `(#:implicit-inputs? #f ;needs nothing but Guile + #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch") + #:not-compiled-file-regexp "/extensible\\.scm$" + #:phases (modify-phases %standard-phases + (add-before 'build 'no-srfi-23 + (lambda _ + (substitute* "packrat.sls" + (("\\(srfi :23 error\\)") + (object->string '(only (guile) error)))) + #t))))) + (native-inputs + `(("guile" ,guile-3.0))) + (synopsis "Packrat parser library in R6RS Scheme") + (description + "This is an R6RS Scheme adaptation of the +@uref{https://bford.info/packrat/, packrat parsing}. Packrat parsing is a +memoizing, backtracking, recursive-descent parsing technique that runs in time +and space linear in the size of the input text.") + (license license:expat))) + +(define-public guile-ac-d-bus + (package + (name "guile-ac-d-bus") + (version "1.0.0-beta.0") + (home-page "https://gitlab.com/weinholt/ac-d-bus/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rl809qimhgz6b0rixakb42r2l4g53jr09a2g0s1hxgab0blz0kb")))) + (build-system guile-build-system) + (arguments + `(#:implicit-inputs? #f ;needs nothing but Guile + #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch") + #:phases (modify-phases %standard-phases + (add-before 'build 'adjust-for-guile + (lambda _ + ;; Adjust source file names for Guile. + (define (guile-sls->sls file) + (string-append (string-drop-right + file (string-length ".guile.sls")) + ".sls")) + + ;; Remove files targeting other implementations: + ;; *.mosh.sls, etc. + (for-each delete-file + (find-files + "compat" + (lambda (file stat) + (not (string-contains file ".guile."))))) + + ;; Rename *.guile.sls to *.sls so the ".guile" bit does + ;; not appear in .go file names. + (for-each (lambda (file) + (rename-file file (guile-sls->sls file))) + (find-files "compat" "\\.guile\\.sls")) + + ;; Move directories under d-bus/ to match module names. + (mkdir "d-bus") + (for-each (lambda (directory) + (rename-file directory + (string-append "d-bus/" + directory))) + '("compat" "protocol")) + + #t))))) + (native-inputs + `(("guile" ,guile-3.0))) + (propagated-inputs + `(("guile-packrat" ,guile-packrat))) + (synopsis "D-Bus protocol implementation in R6RS Scheme") + (description + "AC/D-Bus is an implementation of the D-Bus wire protocol. D-Bus is an +interprocess communication protocol popular on GNU/Linux systems to +communicate with a variety of services. Originally designed for desktop +environments, it is now used by programs like VLC media player, BlueZ, +NetworkManager, Pulseaudio, systemd (including logind and resolved), Polkit, +gnome-keyring, and many more.") + (license license:expat))) + (define-public guile-webutils (let ((commit "8541904f761066dc9c27b1153e9a838be9a55299") (revision "0")) @@ -3130,7 +3491,15 @@ SHA-512).") (file-name (git-file-name name version)) (sha256 (base32 - "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64")))) + "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Allow builds with Guile 3.0. + (substitute* "configure.ac" + (("2\\.2 2\\.0") + "3.0 2.2 2.0")) + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -3138,7 +3507,7 @@ SHA-512).") ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (propagated-inputs `(("guile-irregex" ,guile-irregex) ("guile-gcrypt" ,guile-gcrypt))) @@ -3149,6 +3518,16 @@ SHA-512).") as signed sessions, multipart message support, etc.") (license license:gpl3+)))) +(define-public guile2.2-webutils + (package + (inherit guile-webutils) + (name "guile2.2-webutils") + (inputs + `(("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-irregex" ,guile2.2-irregex) + ("guile-gcrypt" ,guile2.2-gcrypt))))) + (define-public guile-lens (let ((commit "14b15d07255f9d3f55d40a3b750d13c9ee3a154f") (revision "0")) @@ -3175,7 +3554,7 @@ as signed sessions, multipart message support, etc.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("guile" ,guile-2.2) + ("guile" ,guile-3.0) ("guile-hall" ,guile-hall) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) @@ -3188,52 +3567,61 @@ provide composable procedures, which can be used to focus, apply functions over, or update a value in arbitrary data structures.") (license license:gpl3+)))) +(define-public guile2.2-lens + (package + (inherit guile-lens) + (name "guile2.2-lens") + (native-inputs + `(("guile" ,guile-2.2) + ,@(alist-delete "guile" (package-native-inputs guile-lens)))))) + (define-public guile-xapian - (let ((commit "ede26b808188eb4d14c6b4181c933dfc09c0a22e") - (revision "0")) - (package - (name "guile-xapian") - (version (git-version "0" revision commit)) - (home-page "https://git.systemreboot.net/guile-xapian") - (source - (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07a9fmqi3pm6mbbpzi01mjwrqwnljs2rnc3603sq49dz4lf663gb")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings - (inputs - `(("guile" ,guile-2.2) - ("xapian" ,xapian) - ("zlib" ,zlib))) - (native-inputs - `(("autoconf" ,autoconf) - ("autoconf-archive" ,autoconf-archive) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("swig" ,swig))) - (synopsis "Guile bindings for Xapian") - (description "@code{guile-xapian} provides Guile bindings for Xapian, a + (package + (name "guile-xapian") + (version "0.1.0") + (home-page "https://git.systemreboot.net/guile-xapian") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16k61f1jn3g48jaf3730b9l0izr5j933jzyri73nmcnjd09gm35i")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings + (inputs + `(("guile" ,guile-3.0) + ("xapian" ,xapian) + ("zlib" ,zlib))) + (native-inputs + `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("swig" ,swig))) + (synopsis "Guile bindings for Xapian") + (description "@code{guile-xapian} provides Guile bindings for Xapian, a search engine library. Xapian is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It has built-in support for several families of weighting models and also supports a rich set of boolean query operators.") - (license license:gpl2+)))) + (license license:gpl2+))) -(define-public guile3.0-xapian +(define-public guile2.2-xapian (package (inherit guile-xapian) - (name "guile3.0-xapian") + (name "guile2.2-xapian") (inputs - `(("guile" ,guile-next) + `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-xapian)))))) +(define-public guile3.0-xapian + (deprecated-package "guile3.0-xapian" guile-xapian)) + (define-public guile-torrent (package (name "guile-torrent") @@ -3273,7 +3661,7 @@ according to Bitorrent BEP003.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rekado/guile-irc.git") + (url "https://github.com/rekado/guile-irc") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3288,7 +3676,7 @@ according to Bitorrent BEP003.") ("texinfo" ,texinfo))) (inputs `(("gnutls" ,gnutls) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (home-page "https://github.com/rekado/guile-irc") (synopsis "IRC library for Guile") (description "This package provides a Guile library for @dfn{Internet @@ -3296,10 +3684,10 @@ Relay Chat} (IRC).") ;; Some file headers incorrectly say LGPLv2+. (license license:lgpl2.1+)))) -(define-public guile3.0-websocket +(define-public guile-websocket (let ((commit "c854e0f84a40d972cbd532bbb89c97ca0126a7cf")) (package - (name "guile3.0-websocket") + (name "guile-websocket") (version "0.1") (source (origin @@ -3334,9 +3722,86 @@ Relay Chat} (IRC).") `(("autoconf" ,autoconf) ("automake" ,automake))) (inputs - `(("guile" ,guile-next))) + `(("guile" ,guile-3.0))) (synopsis "Websocket server/client for Guile") (description "Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.") (home-page "https://git.dthompson.us/guile-websocket.git") (license license:lgpl3+)))) + +(define-public guile3.0-websocket + (deprecated-package "guile3.0-websocket" guile-websocket)) + +(define-public guile-rdf + (package + (name "guile-rdf") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://framagit.org/tyreunom/guile-rdf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dwn3app1fscbpmpgvjs5jy1y0gwy3j5gdx8br79af6a88zjlnqf")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)); tests require network + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("automake" ,automake) + ("autoconf" ,autoconf) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (home-page "https://framagit.org/tyreunom/guile-rdf") + (synopsis "Guile implementation of the RDF abstract and concrete syntaxes") + (description "Guile RDF is an implementation of the RDF (Resource Description +Framework) format defined by the W3C for GNU Guile. RDF structures include +triples (facts with a subject, a predicate and an object), graphs which are +sets of triples, and datasets, which are collections of graphs. + +RDF specifications include the specification of concrete syntaxes and of +operations on graphs. This library implements some basic functionalities, +such as parsing and producing turtle and nquads syntax, as well as +manipulating graphs and datasets.") + (license license:gpl3+))) + +(define-public guile-jsonld + (package + (name "guile-jsonld") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://framagit.org/tyreunom/guile-jsonld") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zfn3nwlz6xzip1j8xbj768dc299r037cfc81bk6kwl9xhzkjbrg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)); require network + (propagated-inputs + `(("guile-gnutls" ,gnutls) + ("guile-json" ,guile-json-3) + ("guile-rdf" ,guile-rdf))) + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("automake" ,automake) + ("autoconf" ,autoconf) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (home-page "https://framagit.org/tyreunom/guile-jsonld") + (synopsis "Guile implementation of the JsonLD API specification") + (description "Guile JsonLD is an implementation of the JsonLD (Json for +Linked Data) API defined by the W3C for GNU Guile. It allows you to express links +between data, in a way that is very similar to WikiData or RDF for instance. +An object can have relations (in the form of an IRI) that relates it to one or +more objects or strings, represented by a Json object or an IRI.") + (license license:gpl3+)))