gnu: bigloo: Update to "4.3b2".

Fixes <https://bugs.gnu.org/33525>.

* gnu/packages/scheme.scm (bigloo): Update to "4.3b2".
This commit is contained in:
Ludovic Courtès 2018-11-28 22:55:12 +01:00
parent 13bcc6b45f
commit 1fe1bb96f2
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 93 additions and 89 deletions

View File

@ -206,98 +206,102 @@ features an integrated Emacs-like editor and a large runtime library.")
(properties '((ftp-directory . "/gnu/mit-scheme/stable.pkg"))))) (properties '((ftp-directory . "/gnu/mit-scheme/stable.pkg")))))
(define-public bigloo (define-public bigloo
(package ;; Upstream modifies source tarballs in place, making significant changes
(name "bigloo") ;; long after the initial publication: <https://bugs.gnu.org/33525>. For
(version "4.3b") ;; transparency, we give this "second 4.3b" release a different version
(source (origin ;; number.
(method url-fetch) (let ((upstream-version "4.3b"))
(uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" (package
version ".tar.gz")) (name "bigloo")
(sha256 (version "4.3b2")
(base32 (source (origin
"1x7xdgsls277zlf6gcaxs2cj62xj6yvb0qxh0ddmxfamvxba0cf4")) (method url-fetch)
;; Remove bundled libraries. (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
(modules '((guix build utils))) upstream-version ".tar.gz"))
(snippet (sha256
'(begin (base32
(for-each delete-file-recursively "02s0wrz5b1p0yqk9x6kax1vwzil7g9cyxfvl3vmy7fzznsza9gs4"))
'("gc" "gmp" "libuv")) ;; Remove bundled libraries.
#t)))) (modules '((guix build utils)))
(build-system gnu-build-system) (snippet
(arguments '(begin
`(#:test-target "test" (for-each delete-file-recursively
#:phases '("gc" "gmp" "libuv"))
(modify-phases %standard-phases #t))))
(replace 'configure (build-system gnu-build-system)
(lambda* (#:key inputs outputs #:allow-other-keys) (arguments
`(#:test-target "test"
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "configure" (substitute* "configure"
(("^shell=.*$") (("^shell=.*$")
(string-append "shell=" (which "bash") "\n")) (string-append "shell=" (which "bash") "\n"))
(("`date`") "0")) (("`date`") "0"))
(substitute* "autoconf/runtest.in" (substitute* "autoconf/runtest.in"
((", @DATE@") "")) ((", @DATE@") ""))
(substitute* "autoconf/osversion" (substitute* "autoconf/osversion"
(("^version.*$") "version=\"\"\n")) (("^version.*$") "version=\"\"\n"))
(substitute* "comptime/Makefile" (substitute* "comptime/Makefile"
(("\\$\\(LDCOMPLIBS\\)") (("\\$\\(LDCOMPLIBS\\)")
"$(LDCOMPLIBS) $(LDFLAGS)")) "$(LDCOMPLIBS) $(LDFLAGS)"))
;; The `configure' script doesn't understand options ;; The `configure' script doesn't understand options
;; of those of Autoconf. ;; of those of Autoconf.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(invoke "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
; use system libraries ; use system libraries
"--customgc=no" "--customgc=no"
"--customunistring=no" "--customunistring=no"
"--customlibuv=no" "--customlibuv=no"
(string-append"--mv=" (which "mv")) (string-append"--mv=" (which "mv"))
(string-append "--rm=" (which "rm")) (string-append "--rm=" (which "rm"))
"--cflags=-fPIC" "--cflags=-fPIC"
(string-append "--ldflags=-Wl,-rpath=" (string-append "--ldflags=-Wl,-rpath="
(assoc-ref outputs "out") (assoc-ref outputs "out")
"/lib/bigloo/" ,version) "/lib/bigloo/" ,upstream-version)
(string-append "--lispdir=" out (string-append "--lispdir=" out
"/share/emacs/site-lisp") "/share/emacs/site-lisp")
"--sharedbde=yes" "--sharedbde=yes"
"--sharedcompiler=yes" "--sharedcompiler=yes"
"--disable-patch")))) "--disable-patch"))))
(add-after 'install 'install-emacs-modes (add-after 'install 'install-emacs-modes
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/emacs/site-lisp"))) (dir (string-append out "/share/emacs/site-lisp")))
(invoke "make" "-C" "bmacs" "all" "install" (invoke "make" "-C" "bmacs" "all" "install"
(string-append "EMACSBRAND=emacs25") (string-append "EMACSBRAND=emacs25")
(string-append "EMACSDIR=" dir)))))))) (string-append "EMACSDIR=" dir))))))))
(inputs (inputs
`(("emacs" ,emacs) ;UDE needs the X version of Emacs `(("emacs" ,emacs) ;UDE needs the X version of Emacs
("libgc" ,libgc) ("libgc" ,libgc)
("libunistring" ,libunistring) ("libunistring" ,libunistring)
("libuv" ,libuv) ("libuv" ,libuv)
("openssl" ,openssl) ("openssl" ,openssl)
("sqlite" ,sqlite) ("sqlite" ,sqlite)
;; Optional APIs for which Bigloo has bindings. ;; Optional APIs for which Bigloo has bindings.
("avahi" ,avahi) ("avahi" ,avahi)
("libphidget" ,libphidget) ("libphidget" ,libphidget)
("pcre" ,pcre))) ("pcre" ,pcre)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(propagated-inputs (propagated-inputs
`(("gmp" ,gmp))) ; bigloo.h refers to gmp.h `(("gmp" ,gmp))) ; bigloo.h refers to gmp.h
(home-page "http://www-sop.inria.fr/indes/fp/Bigloo/") (home-page "http://www-sop.inria.fr/indes/fp/Bigloo/")
(synopsis "Efficient Scheme compiler") (synopsis "Efficient Scheme compiler")
(description (description
"Bigloo is a Scheme implementation devoted to one goal: enabling "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme
Scheme based programming style where C(++) is usually based programming style where C(++) is usually required. Bigloo attempts to
required. Bigloo attempts to make Scheme practical by offering make Scheme practical by offering features usually presented by traditional
features usually presented by traditional programming languages programming languages but not offered by Scheme and functional programming.
but not offered by Scheme and functional programming. Bigloo Bigloo compiles Scheme modules. It delivers small and fast stand alone binary
compiles Scheme modules. It delivers small and fast stand alone executables. Bigloo enables full connections between Scheme and C programs
binary executables. Bigloo enables full connections between and between Scheme and Java programs.")
Scheme and C programs and between Scheme and Java programs.") (license gpl2+))))
(license gpl2+)))
(define-public hop (define-public hop
(package (package