From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 10:09:56 2021 Received: (at 49889) by debbugs.gnu.org; 5 Aug 2021 14:09:56 +0000 Received: from localhost ([127.0.0.1]:47983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBe4A-00074J-Sd for submit@debbugs.gnu.org; Thu, 05 Aug 2021 10:09:56 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:32844 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBe48-000742-8f for 49889@debbugs.gnu.org; Thu, 05 Aug 2021 10:09:45 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628172574; bh=ox8vgKmYXve4r/rKMivcjH79PE9SfcmBotz+GIpz0A4=; h=From:To:Subject:In-Reply-To:References:Date; b=SZ3RyyJpVkmrkDwHcvBf8YAlO8m8iQOQJX3bAjLncwA1jWE+wCrGwNSuNKJstk0QT yVf3y/VUPhmt1imhhSOXzmtqYPTCAU22jss33V/xsqLDgQnzfSmnh143I45Ju1k6Bw sqoLLgtjhG5PfAfbqjTsde9uDRKsG1LMAlHwzJiM= To: 49889@debbugs.gnu.org Subject: [PATCH 1/5] gnu: gerbil: Move to (gnu packages gerbil). In-Reply-To: References: Message-Id: <983c3e3a6b0b63c75044e33ed4b2dad87583158f.1628172101.git.public@yoctocell.xyz> Date: Thu, 05 Aug 2021 16:09:33 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/scheme.scm (gerbil): Move from here... * gnu/packages/gerbil.scm: New module. (gerbil): ...to here * gnu/local.mk (GNU_SYSTEM_MODULES): Register gnu/packages/gerbil.scm. --- gnu/local.m [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: liltechdude.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49889 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/scheme.scm (gerbil): Move from here... * gnu/packages/gerbil.scm: New module. (gerbil): ...to here * gnu/local.mk (GNU_SYSTEM_MODULES): Register gnu/packages/gerbil.scm. --- gnu/local.m [...] Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: liltechdude.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps * gnu/packages/scheme.scm (gerbil): Move from here... * gnu/packages/gerbil.scm: New module. (gerbil): ...to here * gnu/local.mk (GNU_SYSTEM_MODULES): Register gnu/packages/gerbil.scm. --- gnu/local.mk | 2 + gnu/packages/gerbil.scm | 137 ++++++++++++++++++++++++++++++++++++++++ gnu/packages/scheme.scm | 105 +----------------------------- 3 files changed, 140 insertions(+), 104 deletions(-) create mode 100644 gnu/packages/gerbil.scm diff --git a/gnu/local.mk b/gnu/local.mk index 51a76e3638..ddbc057dc7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -44,6 +44,7 @@ # Copyright =C2=A9 2021 Arun Isaac # Copyright =C2=A9 2021 Sharlatan Hellseher # Copyright =C2=A9 2021 Dmitry Polyakov +# Copyright =C2=A9 2021 Xinglu Chen # # This file is part of GNU Guix. # @@ -239,6 +240,7 @@ GNU_SYSTEM_MODULES =3D \ %D%/packages/genealogy.scm \ %D%/packages/genimage.scm \ %D%/packages/geo.scm \ + %D%/packages/gerbil.scm \ %D%/packages/gettext.scm \ %D%/packages/ghostscript.scm \ %D%/packages/gimp.scm \ diff --git a/gnu/packages/gerbil.scm b/gnu/packages/gerbil.scm new file mode 100644 index 0000000000..69e7ae76a8 --- /dev/null +++ b/gnu/packages/gerbil.scm @@ -0,0 +1,137 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 Edouard Klein +;;; Copyright =C2=A9 2021 Xinglu Chen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages gerbil) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages scheme) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tls) + #:use-module (gnu packages) + #:use-module (guix build-system gerbil) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1)) + +(define-public gerbil + (package + (name "gerbil") + (version "0.16") + (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 "0vng0kxpnwsg8jbjdpyn4sdww36jz7zfpfbzayg9sdpz6bjxjy0f")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'bootstrap) + (add-before 'configure 'chdir + (lambda _ + (chdir "src"))) + (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"))))) + (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 + `(("coreutils" ,coreutils) + ("util-linux" ,util-linux))) + (propagated-inputs + `(("gambit-c" ,gambit-c) + ("zlib" ,zlib) + ("openssl" ,openssl) + ("sqlite" ,sqlite))) + (synopsis "Meta-dialect of Scheme with post-modern features") + (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 ful= l-blown module +system, similar to PLT Scheme's (sorry, Racket) modules. The main differe= nce from Racket +is that Gerbil modules are single instantiation, supporting high performan= ce ahead of +time compilation and compiled macros.") + (home-page "https://cons.io") + (license (list license:lgpl2.1 license:asl2.0)))) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c43d17219e..1ab4c329f8 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -13,7 +13,6 @@ ;;; Copyright =C2=A9 2018 Gabriel Hondet ;;; Copyright =C2=A9 2020 Pierre Neidhardt ;;; Copyright =C2=A9 2020 Brett Gilio -;;; Copyright =C2=A9 2020 Edouard Klein ;;; Copyright =C2=A9 2021 Philip McGrath ;;; Copyright =C2=A9 2021 Guillaume Le Vaillant ;;; @@ -919,106 +918,4 @@ manager/installer @code{gauche-package} which can dow= nload, compile, install and list gauche extension packages.") (license bsd-3))) =20 -(define-public gerbil - (package - (name "gerbil") - (version "0.16") - (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 "0vng0kxpnwsg8jbjdpyn4sdww36jz7zfpfbzayg9sdpz6bjxjy0f")))) - (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)) - (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 - `(("coreutils" ,coreutils) - ("util-linux" ,util-linux))) - (propagated-inputs - `(("gambit-c" ,gambit-c) - ("zlib" ,zlib) - ("openssl" ,openssl) - ("sqlite" ,sqlite))) - (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 -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 ful= l-blown module -system, similar to PLT Scheme's (sorry, Racket) modules. The main differe= nce from Racket -is that Gerbil modules are single instantiation, supporting high performan= ce ahead of -time compilation and compiled macros.") - (home-page "https://cons.io") - (license `(,lgpl2.1 ,asl2.0)))) + --=20 2.32.0