summary refs log tree commit diff
path: root/gnu/packages/scheme.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r--gnu/packages/scheme.scm93
1 files changed, 52 insertions, 41 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index dae00732af..161138285e 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -35,10 +35,14 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
+  #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libunistring)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages ghostscript)
@@ -195,47 +199,35 @@ features an integrated Emacs-like editor and a large runtime library.")
 (define-public bigloo
   (package
     (name "bigloo")
-    (version "4.1a")
+    (version "4.3a")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "170q7nh08n4v20xl81fxb0xcdxphqqacfa643hsa8i2ar6pki04c"))
-             (patches (search-patches "bigloo-gc-shebangs.patch"))))
+               "03rcqs6kvy2j5lqk4fidqay5qfyp474qqspbh6wk4qdbds6w599w"))
+             ;; Remove bundled libraries.
+             (modules '((guix build utils)))
+             (snippet
+              '(for-each delete-file-recursively
+                         '("gc" "gmp" "libuv")))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
 
              (substitute* "configure"
                (("^shell=.*$")
-                (string-append "shell=" (which "bash") "\n")))
-
-             ;; Since libgc's pthread redirects are used, we end up
-             ;; using libgc symbols, so we must link against it.
-             ;; Reported on 2013-06-25.
-             (substitute* "api/pthread/src/Makefile"
-               (("^EXTRALIBS[[:blank:]]*=(.*)$" _ value)
-                (string-append "EXTRALIBS = "
-                               (string-trim-right value)
-                               " -l$(GCLIB)_fth-$(RELEASE)"
-                               " -Wl,-rpath=" (assoc-ref outputs "out")
-                               "/lib/bigloo/" ,version)))
-
-             ;; Those variables are used by libgc's `configure'.
-             (setenv "SHELL" (which "sh"))
-             (setenv "CONFIG_SHELL" (which "sh"))
-
-             ;; ... but they turned out to be overridden later, so work
-             ;; around that.
-             (substitute* (find-files "gc" "^configure-gc")
-               (("sh=/bin/sh")
-                (string-append "sh=" (which "sh"))))
+                (string-append "shell=" (which "bash") "\n"))
+               (("`date`") "0"))
+             (substitute* "autoconf/runtest.in"
+               ((", @DATE@") ""))
+             (substitute* "autoconf/osversion"
+               (("^version.*$") "version=\"\"\n"))
 
              ;; The `configure' script doesn't understand options
              ;; of those of Autoconf.
@@ -243,28 +235,39 @@ features an integrated Emacs-like editor and a large runtime library.")
                (zero?
                 (system* "./configure"
                          (string-append "--prefix=" out)
-                         ;; FIXME: Currently fails, see
-                         ;; <http://article.gmane.org/gmane.lisp.scheme.bigloo/6126>.
-                         ;; "--customgc=no" ; use our libgc
+                         ; use system libraries
+                         "--customgc=no"
+                         "--customunistring=no"
+                         "--customlibuv=no"
                          (string-append"--mv=" (which "mv"))
                          (string-append "--rm=" (which "rm"))
                          "--cflags=-fPIC"
                          (string-append "--ldflags=-Wl,-rpath="
                                         (assoc-ref outputs "out")
-                                        "/lib/bigloo/" ,version))))))
+                                        "/lib/bigloo/" ,version)
+                         (string-append "--lispdir=" out
+                                        "/share/emacs/site-lisp")
+                         "--sharedbde=yes"
+                         "--sharedcompiler=yes")))))
          (add-after 'install 'install-emacs-modes
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (dir (string-append out "/share/emacs/site-lisp")))
                (zero? (system* "make" "-C" "bmacs" "all" "install"
-                               (string-append "EMACSBRAND=emacs24")
+                               (string-append "EMACSBRAND=emacs25")
                                (string-append "EMACSDIR=" dir)))))))))
     (inputs
      `(("emacs" ,emacs)                      ;UDE needs the X version of Emacs
+       ("libgc" ,libgc)
+       ("libunistring" ,libunistring)
+       ("libuv" ,libuv)
+       ("openssl" ,openssl)
+       ("sqlite" ,sqlite)
 
        ;; Optional APIs for which Bigloo has bindings.
        ("avahi" ,avahi)
-       ("libphidget" ,libphidget)))
+       ("libphidget" ,libphidget)
+       ("pcre" ,pcre)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (propagated-inputs
@@ -285,21 +288,23 @@ Scheme and C programs and between Scheme and Java programs.")
 (define-public hop
   (package
     (name "hop")
-    (version "2.5.1")
+    (version "3.1.0-pre2")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Hop/hop-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1bvp7pc71bln5yvfj87s8750c6l53wjl6f8m12v62q9926adhwys"))
-             (patches (search-patches "hop-linker-flags.patch"))))
+               "09m7pahjsp7wxzd20cdph9j3mgf2nq5dyckcjljcd40m25v85kks"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:test-target "test"
+       #:make-flags '("BIGLOO=bigloo")
+       #:parallel-build? #f
+       #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (zero?
                 (system* "./configure"
@@ -307,11 +312,16 @@ Scheme and C programs and between Scheme and Java programs.")
                          (string-append "--blflags="
                                         ;; user flags completely override useful
                                         ;; default flags, so repeat them here.
-                                        "-copt \\$(CPICFLAGS) -L\\$(BUILDLIBDIR) "
-                                        "-ldopt -Wl,-rpath," out "/lib")))))))
-       #:tests? #f))                                ; no test suite
+                                        "-copt \\$(CPICFLAGS) "
+                                        "-L \\$(BUILDLIBDIR) "
+                                        "-ldopt -Wl,-rpath," out "/lib")))))))))
     (inputs `(("avahi" ,avahi)
               ("bigloo" ,bigloo)
+              ("libgc" ,libgc)
+              ("libunistring" ,libunistring)
+              ("libuv" ,libuv)
+              ("pcre" ,pcre)
+              ("sqlite" ,sqlite)
               ("which" ,which)))
     (home-page "http://hop.inria.fr/")
     (synopsis "Multi-tier programming language for the Web 2.0")
@@ -335,7 +345,8 @@ mashups, office (web agendas, mail clients, ...), etc.")
                (base32
                 "12b9gaa9lqh39lj1v4wm48f6z8ww3jdkvc5bh9gqqvn6kd2wwnk0"))
               (patches
-               (search-patches "chicken-CVE-2017-6949.patch"))))
+               (search-patches "chicken-CVE-2017-6949.patch"
+                               "chicken-CVE-2017-11343.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)