gnu: deutex: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / guile-xyz.scm
index e2eee47..fa612b6 100644 (file)
@@ -73,6 +73,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages noweb)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module ((srfi srfi-1) #:select (alist-delete)))
 
 (define-public artanis
-  (let ((release "0.3.1")
-        (revision 0))
-    (package
-      (name "artanis")
-      (version (if (zero? revision)
-                   release
-                   (string-append release "-"
-                                  (number->string revision))))
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "mirror://gnu/artanis/artanis-"
-                                    release ".tar.gz"))
-                (file-name (string-append name "-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "0hqr5m3mb558bdhkc2sadmd9cbrhp3y525wx7cwirgy6i0zmay68"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    ;; Unbundle guile-redis and guile-json
-                    (delete-file-recursively "artanis/third-party/json.scm")
-                    (delete-file-recursively "artanis/third-party/json")
-                    (delete-file-recursively "artanis/third-party/redis.scm")
-                    (delete-file-recursively "artanis/third-party/redis")
-                    (substitute* '("artanis/artanis.scm"
-                                   "artanis/lpc.scm"
-                                   "artanis/oht.scm")
-                      (("(#:use-module \\()artanis third-party (json\\))" _
-                        use-module json)
-                       (string-append use-module json)))
-                    (substitute* '("artanis/lpc.scm"
-                                   "artanis/session.scm")
-                      (("(#:use-module \\()artanis third-party (redis\\))" _
-                        use-module redis)
-                       (string-append use-module redis)))
-                    (substitute* "artanis/oht.scm"
-                      (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
-                        _ pre json-string post)
-                       (string-append pre
-                                      "scm" json-string
-                                      post)))
-                    (substitute* "artanis/artanis.scm"
-                      (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
-                       ""))
-                    #t))))
-      (build-system gnu-build-system)
-      ;; FIXME the bundled csv contains one more exported procedure
-      ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
-      ;; projects.
-      ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
-      (inputs `(("guile" ,guile-2.2)
-                ("guile-json" ,guile-json-1)
-                ("guile-redis" ,guile-redis)))
-      (native-inputs `(("bash"       ,bash)         ;for the `source' builtin
-                       ("pkgconfig"  ,pkg-config)
-                       ("util-linux" ,util-linux))) ;for the `script' command
-      (arguments
-       '(#:make-flags
-         ;; TODO: The documentation must be built with the `docs' target.
-         (let* ((out (assoc-ref %outputs "out"))
-                (scm (string-append out "/share/guile/site/2.2"))
-                (go  (string-append out "/lib/guile/2.2/site-ccache")))
-           ;; Don't use (%site-dir) for site paths.
-           (list (string-append "MOD_PATH=" scm)
-                 (string-append "MOD_COMPILED_PATH=" go)))
-         #:test-target "test"
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-site-dir
-             (lambda* (#:key outputs #:allow-other-keys)
-               (substitute* "artanis/commands/help.scm"
-                 (("\\(%site-dir\\)")
-                  (string-append "\""
-                                 (assoc-ref outputs "out")
-                                 "/share/guile/site/2.2\"")))))
-           (add-before 'install 'substitute-root-dir
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out  (assoc-ref outputs "out")))
-                 (substitute* "Makefile"   ;ignore the execution of bash.bashrc
-                   ((" /etc/bash.bashrc") " /dev/null"))
-                 (substitute* "Makefile"   ;set the root of config files to OUT
-                   ((" /etc") (string-append " " out "/etc")))
-                 (mkdir-p (string-append out "/bin")) ;for the `art' executable
-                 #t)))
-           (add-after 'install 'wrap-art
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin"))
-                      (scm (string-append out "/share/guile/site/2.2"))
-                      (go  (string-append out "/lib/guile/2.2/site-ccache")))
-                 (wrap-program (string-append bin "/art")
-                   `("GUILE_LOAD_PATH" ":" prefix
-                     (,scm ,(getenv "GUILE_LOAD_PATH")))
-                   `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
-                 #t))))))
-      (synopsis "Web application framework written in Guile")
-      (description "GNU Artanis is a web application framework written in Guile
+  (package
+    (name "artanis")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/artanis/artanis-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0nnmdfx5xwcc3kck64var7msz7g3qk817d7bv9l159nkmic0v9w4"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Unbundle guile-redis and guile-json
+                  (delete-file-recursively "artanis/third-party/json.scm")
+                  (delete-file-recursively "artanis/third-party/json")
+                  (delete-file-recursively "artanis/third-party/redis.scm")
+                  (delete-file-recursively "artanis/third-party/redis")
+                  (substitute* '("artanis/artanis.scm"
+                                 "artanis/lpc.scm"
+                                 "artanis/oht.scm")
+                    (("(#:use-module \\()artanis third-party (json\\))" _
+                      use-module json)
+                     (string-append use-module json)))
+                  (substitute* '("artanis/lpc.scm"
+                                 "artanis/session.scm")
+                    (("(#:use-module \\()artanis third-party (redis\\))" _
+                      use-module redis)
+                     (string-append use-module redis)))
+                  (substitute* "artanis/oht.scm"
+                    (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
+                      _ pre json-string post)
+                     (string-append pre
+                                    "scm" json-string
+                                    post)))
+                  (substitute* "artanis/artanis.scm"
+                    (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
+                     ""))
+                  #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("guile" ,guile-2.2)
+       ("nss" ,nss)))
+    ;; FIXME the bundled csv contains one more exported procedure
+    ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
+    ;; 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)))
+    (native-inputs
+     `(("bash"       ,bash)         ;for the `source' builtin
+       ("pkgconfig"  ,pkg-config)
+       ("util-linux" ,util-linux))) ;for the `script' command
+    (arguments
+     '(#:make-flags
+       ;; TODO: The documentation must be built with the `docs' target.
+       (let* ((out (assoc-ref %outputs "out"))
+              (scm (string-append out "/share/guile/site/2.2"))
+              (go  (string-append out "/lib/guile/2.2/site-ccache")))
+         ;; Don't use (%site-dir) for site paths.
+         (list (string-append "MOD_PATH=" scm)
+               (string-append "MOD_COMPILED_PATH=" go)))
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-site-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "artanis/commands/help.scm"
+               (("\\(%site-dir\\)")
+                (string-append "\""
+                               (assoc-ref outputs "out")
+                               "/share/guile/site/2.2\"")))))
+         (add-after 'unpack 'patch-reference-to-libnss
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "artanis/security/nss.scm"
+               (("ffi-binding \"libnss3\"")
+                (string-append
+                 "ffi-binding \""
+                 (assoc-ref inputs "nss") "/lib/nss/libnss3.so"
+                 "\"")))
+             #t))
+         (add-before 'install 'substitute-root-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out  (assoc-ref outputs "out")))
+               (substitute* "Makefile"   ;ignore the execution of bash.bashrc
+                 ((" /etc/bash.bashrc") " /dev/null"))
+               (substitute* "Makefile"   ;set the root of config files to OUT
+                 ((" /etc") (string-append " " out "/etc")))
+               (mkdir-p (string-append out "/bin")) ;for the `art' executable
+               #t)))
+         (add-after 'install 'wrap-art
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (scm (string-append out "/share/guile/site/2.2"))
+                    (go  (string-append out "/lib/guile/2.2/site-ccache")))
+               (wrap-program (string-append bin "/art")
+                 `("GUILE_LOAD_PATH" ":" prefix
+                   (,scm ,(getenv "GUILE_LOAD_PATH")))
+                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                   (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
+               #t))))))
+    (synopsis "Web application framework written in Guile")
+    (description "GNU Artanis is a web application framework written in Guile
 Scheme.  A web application framework (WAF) is a software framework that is
 designed to support the development of dynamic websites, web applications, web
 services and web resources.  The framework aims to alleviate the overhead
@@ -204,8 +213,8 @@ associated with common activities performed in web development.  Artanis
 provides several tools for web development: database access, templating
 frameworks, session management, URL-remapping for RESTful, page caching, and
 more.")
-      (home-page "https://www.gnu.org/software/artanis/")
-      (license (list license:gpl3+ license:lgpl3+))))) ;dual license
+    (home-page "https://www.gnu.org/software/artanis/")
+    (license (list license:gpl3+ license:lgpl3+)))) ;dual license
 
 ;; There has not been any release yet.
 (define-public guildhall
@@ -912,7 +921,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
 (define-public guile-email
   (package
     (name "guile-email")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -921,7 +930,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
              version ".tar.lz"))
        (sha256
         (base32
-         "1ph3pb69hr3d8mj05fmbpf5rc67dlm8qnb35cc7cxz8ingvl7kv3"))))
+         "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2002,59 +2011,67 @@ The picture values can directly be displayed in Geiser.")
       (license license:lgpl3+))))
 
 (define-public guile-studio
-  (let ((commit "98fbbbd08de396cd8a0e45f2a4badf1c733a5772")
-        (revision "3"))
-    (package
-      (name "guile-studio")
-      (version (git-version "0.0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.elephly.net/software/guile-studio.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0rxl5gv2mavycwkl33lcwyb3z71j2f4zyzk60k7vl3hzszpr08iq"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#: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=" (map cdr %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
+  (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+))))
+    (license license:gpl3+)))
 
 (define-public guile-stis-parser
   (let ((commit "6e85d37ffc333b722f4413a6c648263701eb75bd")
@@ -2218,7 +2235,7 @@ from @code{tree-il}.")
 (define-public guile-file-names
   (package
     (name "guile-file-names")
-    (version "0.2")
+    (version "0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://brandon.invergo.net/software/download/"
@@ -2226,7 +2243,7 @@ from @code{tree-il}.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1kwx5hanl40960w2nhyga7ry4l6c3c57zdrihk4yajj87vn3pmi8"))))
+                "01chizdxkhw6aqv629vxka9f5x3534ij7r0jqndawsg2vxm1r9sz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2475,7 +2492,7 @@ perform geometrical transforms on JPEG images.")
 (define-public nomad
   (package
     (name "nomad")
-    (version "0.1.1-alpha")
+    (version "0.1.2-alpha")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2484,7 +2501,7 @@ perform geometrical transforms on JPEG images.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0abz07hl5dh802ciy71xzkvkhyryypq1i94wna40a2wndbd73f7z"))))
+                "1dnkr1hmvfkwgxd75dcf93pg39yfgawvdpzdhv991yhghv0qxc9h"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2493,7 +2510,9 @@ perform geometrical transforms on JPEG images.")
        ("pkg-config" ,pkg-config)
        ("libtool" ,libtool)
        ("guile" ,guile-2.2)
-       ("glib:bin" ,glib "bin")))
+       ("glib:bin" ,glib "bin")
+       ("texinfo" ,texinfo)
+       ("perl" ,perl)))
     (inputs
      `(("guile" ,guile-2.2)
        ("guile-lib" ,guile-lib)
@@ -2629,8 +2648,8 @@ clean and easy to use high level API.")
     (license license:gpl3+)))
 
 (define-public guile-ffi-fftw
-  (let ((commit "95d7ffb55860f3163c5283ecec1ef43bc3d174dd")
-        (revision "1"))
+  (let ((commit "294ad9e7491dcb40026d2fec9be2af05263be1c0")
+        (revision "2"))
     (package
       (name "guile-ffi-fftw")
       (version (git-version "0" revision commit))
@@ -2642,7 +2661,7 @@ clean and easy to use high level API.")
                 (file-name (git-file-name "guile-ffi-fftw" version))
                 (sha256
                  (base32
-                  "0v9vk9cr4x9gn36lihi9gfkxyiqak0i598v5li6qw8bg95004p49"))))
+                  "08j40a5p6a8pgvhffmzb5rfdnrav2mksy3gfjkdqy93jfj1z5afg"))))
       (build-system guile-build-system)
       (arguments
        `(#:source-directory "mod"
@@ -2668,9 +2687,7 @@ library's ‘guru interface’.  It provides two functions: @code{fftw-dft! rank
 sign in out} and @code{fftw-dft rank sign in}.  These bindings being minimal,
 there is no support for computing & reusing plans, or split r/i transforms, or
 anything other than straight complex DFTs.")
-      ;; TODO: This might actually be LGPLv3+
-      ;; See https://github.com/lloda/guile-ffi-fftw/issues/1
-      (license license:gpl3+))))
+      (license license:lgpl3+))))
 
 (define-public srfi-64-driver
   (package