[bug#62282] gnu: gerbil: Upgrade to 0.17.0.
Commit Message
Hello,
> You should split these changes into separate commits.
>
> Take a look at https://issues.guix.gnu.org/61845 or search the git history for “G-Expression”
I have done so and the new patches are attached here.
The first two patches have the same effect as the initial patch. The third patch enables a set of features that were not enabled before, but which it would be useful to make available to Guix users.
Thanks,
Juli
Comments
Hello,
Thanks for taking the time to split the patch. I’ve applied #1 and #2.
"J. Sims" <jtsims@protonmail.com> skribis:
> From 569fabf7029200cbb3166af83b8fc89a6378468d Mon Sep 17 00:00:00 2001
> From: Juliana Sims <jtsims@protonmail.com>
> Date: Tue, 28 Mar 2023 23:56:07 -0400
> Subject: [PATCH 3/3] gnu: gerbil: Enable all features.
>
> * gnu/packages/scheme.scm (gerbil): Enable all features.
[...]
> + "--enable-leveldb"
> + "--enable-libxml"
> + "--enable-libyaml"
> + "--enable-lmdb"
> + "--enable-mysql"
> + "--enable-sqlite"
> + "--enable-zlib")))
> (add-before 'patch-generated-file-shebangs 'fix-gxi-shebangs
> (lambda _
> ;; Some .ss files refer to gxi using /usr/bin/env gxi
> @@ -1202,8 +1211,18 @@ (define-public gerbil
> (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))
> + (native-inputs (list coreutils
> + gambit-c
> + util-linux))
> + (propagated-inputs (list gambit-c
> + leveldb
> + libxml2
> + libyaml
> + lmdb
> + mysql
> + openssl
> + sqlite
> + zlib))
I have two questions:
1. What’s the impact on ‘guix size gerbil’? Overall we should find a
balance between feature usefulness and size.
2. Do all these really need to be propagated? Shouldn’t they be
regular inputs? If propagation is required, please add a comment
explaining why.
I propose to close this issue since the initial goal has been met, but
please open a new one to follow up on this.
Thanks!
Ludo’.
From 3ea0527aab1924ff3eb49f7714400ae88e2dfd65 Mon Sep 17 00:00:00 2001
From: Juliana Sims <jtsims@protonmail.com>
Date: Tue, 28 Mar 2023 23:05:15 -0400
Subject: [PATCH 2/3] 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.
---
gnu/packages/scheme.scm | 182 ++++++++++++++++++++--------------------
1 file changed, 90 insertions(+), 92 deletions(-)
@@ -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
--
2.39.2