~ruther/guix-local

592a8dffce3d3a5856af1b724aff39905bb3d100 — Juliana Sims 3 years ago e3089dc
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>
1 files changed, 88 insertions(+), 91 deletions(-)

M gnu/packages/scheme.scm
M gnu/packages/scheme.scm => gnu/packages/scheme.scm +88 -91
@@ 1115,98 1115,95 @@ a Common Lisp environment.")
  (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