summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/bigloo-gc-shebangs.patch18
-rw-r--r--gnu/packages/scheme.scm67
3 files changed, 35 insertions, 51 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 781c28accb..f73a6ddd08 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -518,7 +518,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/awesome-reproducible-png.patch		\
   %D%/packages/patches/azr3.patch				\
   %D%/packages/patches/bash-completion-directories.patch	\
-  %D%/packages/patches/bigloo-gc-shebangs.patch			\
   %D%/packages/patches/binutils-ld-new-dtags.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/binutils-mips-bash-bug.patch		\
diff --git a/gnu/packages/patches/bigloo-gc-shebangs.patch b/gnu/packages/patches/bigloo-gc-shebangs.patch
deleted file mode 100644
index 367708610a..0000000000
--- a/gnu/packages/patches/bigloo-gc-shebangs.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch shebangs in source that gets unpacked by `configure'.
-
---- bigloo4.1a/gc/install-gc-7.4.0	2014-02-04 14:55:03.000000000 +0100
-+++ bigloo4.1a/gc/install-gc-7.4.0	2014-02-04 14:55:36.000000000 +0100
-@@ -29,10 +29,12 @@ fi
- 
- # untar the two versions of the GC
- $tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1)
--/bin/rm -rf "../gc/$gc"_fth
-+rm -rf "../gc/$gc"_fth
-+find ../gc/$gc -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P sh`|g"
- mv ../gc/$gc "../gc/$gc"_fth || (echo "mv $gc failed"; exit 1)
- 
- $tar xfz $src  -C ../gc || (echo "$tar xfz $src failed"; exit 1)
-+find ../gc/$gc -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P sh`|g"
- 
- # general Bigloo patch
- (cd "../gc/$gc"_fth && $patch -p1 < ../$gc.patch > /dev/null)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index dae00732af..8c8922d89f 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