~ruther/guix-local

5e3ea571c5ac10858b2a1d6d3dc94a26408ae601 — Kei Kebreau 8 years ago b480635
gnu: bigloo: Update to 4.3a.

* gnu/packages/scheme.scm (bigloo): Update to 4.3a.
[source]: Remove old patch. Add snippet.
[arguments]: Adjust the build phases accordingly.
[inputs]: Add libgc, libunistring, libuv, openssl, pcre and sqlite.
3 files changed, 35 insertions(+), 51 deletions(-)

M gnu/local.mk
D gnu/packages/patches/bigloo-gc-shebangs.patch
M gnu/packages/scheme.scm
M gnu/local.mk => gnu/local.mk +0 -1
@@ 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		\

D gnu/packages/patches/bigloo-gc-shebangs.patch => gnu/packages/patches/bigloo-gc-shebangs.patch +0 -18
@@ 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)

M gnu/packages/scheme.scm => gnu/packages/scheme.scm +35 -32
@@ 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