gnu: gerbil: Use G-expressions.

* gnu/packages/scheme.scm (gerbil)[source, arguments]: Reindent.
[arguments]: Rewrite using G-expressions. Do not return #t from custom
phases. Use #:tests? instead of deleting the check phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Juliana Sims 2023-03-28 23:05:15 -04:00 committed by Maxim Cournoyer
parent 5cf4448b5d
commit a9b63e2be1
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -1115,101 +1115,99 @@ (define-public gerbil
(package
(name "gerbil")
(version "0.17.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vyzo/gerbil")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0c0nspm659ybgmqlppdv7sxzll4hwkvcp9qmcsip6d0kz0p8r9c3"))))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vyzo/gerbil")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0c0nspm659ybgmqlppdv7sxzll4hwkvcp9qmcsip6d0kz0p8r9c3"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(add-before 'configure 'chdir
(lambda _
(chdir "src")
#t))
(replace 'configure
(lambda* (#:key outputs inputs #:allow-other-keys)
(invoke "chmod" "755" "-R" ".")
;; Otherwise fails when editing an r--r--r-- file.
(invoke "gsi-script" "configure"
"--prefix" (assoc-ref outputs "out")
"--with-gambit" (assoc-ref inputs "gambit-c"))))
(add-before 'patch-generated-file-shebangs 'fix-gxi-shebangs
(lambda _
;; Some .ss files refer to gxi using /usr/bin/env gxi
;; and 'patch-generated-file-shebangs can't fix that
;; because gxi has not been compiled yet.
;; We know where gxi is going to end up so we
;; Doctor Who our fix here before the problem
;; happens towards the end of the build.sh script.
(let ((abs-srcdir (getcwd)))
(for-each
(lambda (f)
(substitute* f
(("#!/usr/bin/env gxi")
(string-append "#!" abs-srcdir "/../bin/gxi"))))
'("./gerbil/gxc"
"./lang/build.ss"
"./misc/http-perf/build.ss"
"./misc/rpc-perf/build.ss"
"./misc/scripts/docsnarf.ss"
"./misc/scripts/docstub.ss"
"./misc/scripts/docsyms.ss"
"./r7rs-large/build.ss"
"./release.ss"
"./std/build.ss"
"./std/run-tests.ss"
"./std/web/fastcgi-test.ss"
"./std/web/rack-test.ss"
"./tools/build.ss"
"./tutorial/httpd/build.ss"
"./tutorial/kvstore/build.ss"
"./tutorial/lang/build.ss"
"./tutorial/proxy/build-static.ss"
"./tutorial/proxy/build.ss")))
#t))
(add-after 'configure 'create-gx-version.scm
(lambda _
(with-output-to-file (string-append
(getcwd)
"/gerbil/runtime/gx-version.scm")
(lambda _
(write `(define (gerbil-version-string)
,(string-append "v" ,(version-major+minor version))))))))
(replace
'build
(lambda*
(#:key inputs #:allow-other-keys)
(setenv "HOME" (getcwd))
(invoke
;; The build script needs a tty or it'll crash on an ioctl
;; trying to find the width of the terminal it's running on.
;; Calling in script prevents that.
"script"
"-qefc"
"./build.sh")))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib")))
(mkdir-p bin)
(mkdir-p lib)
(copy-recursively "../bin" bin)
(copy-recursively "../lib" lib)))))))
(native-inputs
(list coreutils gambit-c util-linux))
(propagated-inputs
(list gambit-c zlib openssl sqlite))
(list #:phases
#~(modify-phases %standard-phases
(delete 'bootstrap)
(add-before 'configure 'chdir
(lambda _
(chdir "src")))
(replace 'configure
(lambda _
(invoke "chmod" "755" "-R" ".")
;; Otherwise fails when editing an r--r--r-- file.
(invoke "gsi-script"
"configure"
"--prefix"
#$output
"--with-gambit"
#$gambit-c)))
(add-before 'patch-generated-file-shebangs 'fix-gxi-shebangs
(lambda _
;; Some .ss files refer to gxi using /usr/bin/env gxi
;; and 'patch-generated-file-shebangs can't fix that
;; because gxi has not been compiled yet.
;; We know where gxi is going to end up so we
;; Doctor Who our fix here before the problem
;; happens towards the end of the build.sh script.
(let ((abs-srcdir (getcwd)))
(for-each (lambda (f)
(substitute* f
(("#!/usr/bin/env gxi")
(string-append "#!" abs-srcdir
"/../bin/gxi"))))
'("./gerbil/gxc" "./lang/build.ss"
"./misc/http-perf/build.ss"
"./misc/rpc-perf/build.ss"
"./misc/scripts/docsnarf.ss"
"./misc/scripts/docstub.ss"
"./misc/scripts/docsyms.ss"
"./r7rs-large/build.ss"
"./release.ss"
"./std/build.ss"
"./std/run-tests.ss"
"./std/web/fastcgi-test.ss"
"./std/web/rack-test.ss"
"./tools/build.ss"
"./tutorial/httpd/build.ss"
"./tutorial/kvstore/build.ss"
"./tutorial/lang/build.ss"
"./tutorial/proxy/build-static.ss"
"./tutorial/proxy/build.ss")))))
(add-after 'configure 'create-gx-version.scm
(lambda _
(with-output-to-file (string-append (getcwd)
"/gerbil/runtime/gx-version.scm")
(lambda _
(write `(define (gerbil-version-string)
,(string-append "v"
#$(version-major+minor
version))))))))
(replace 'build
(lambda _
(setenv "HOME"
(getcwd))
(invoke
;; The build script needs a tty or it'll crash on an ioctl
;; trying to find the width of the terminal it's running on.
;; Calling in script prevents that.
"script"
"-qefc"
"./build.sh")))
(replace 'install
(lambda _
(let* ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib")))
(mkdir-p bin)
(mkdir-p lib)
(copy-recursively "../bin" bin)
(copy-recursively "../lib" lib)))))
#:tests? #f))
(native-inputs (list coreutils gambit-c util-linux))
(propagated-inputs (list gambit-c openssl sqlite zlib))
(build-system gnu-build-system)
(synopsis "Meta-dialect of Scheme with post-modern features")
(description "Gerbil is an opinionated dialect of Scheme designed for Systems
(description
"Gerbil is an opinionated dialect of Scheme designed for Systems
Programming, with a state of the art macro and module system on top of the Gambit
runtime. The macro system is based on quote-syntax, and provides the full meta-syntactic
tower with a native implementation of syntax-case. It also provides a full-blown module