Subject: Re: [bug#71359] [PATCH] gnu: Add unsyntax.

From: Zheng Junjie <[email-masked]>
Date: Sun, 21 Jul 2024 11:00:49 +0800

Andrew Whatson via Guix-patches via <[email-masked]> writes:

> * gnu/packages/scheme.scm (unsyntax): New variable.
>
> Change-Id: If00a41e98d2a261af063cecd61e21a7bbc3f91ee
> ---
>  gnu/packages/scheme.scm | 59 ++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 58 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
> index 47754800f9..419467fdf0 100644
> --- a/gnu/packages/scheme.scm
> +++ b/gnu/packages/scheme.scm
> @@ -20,7 +20,7 @@
>  ;;; Copyright © 2022 Morgan Smith <[email-masked]>
>  ;;; Copyright © 2022 jgart <[email-masked]>
>  ;;; Copyright © 2022 Robby Zambito <[email-masked]>
> -;;; Copyright © 2023 Andrew Whatson <[email-masked]>
> +;;; Copyright © 2023, 2024 Andrew Whatson <[email-masked]>
>  ;;; Copyright © 2023 Juliana Sims <[email-masked]>
>  ;;; Copyright © 2023 Maxim Cournoyer <[email-masked]>
>  ;;; Copyright © 2024 Skylar Hill <[email-masked]>
> @@ -62,6 +62,7 @@ (define-module (gnu packages scheme)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages bdw-gc)
> +  #:use-module (gnu packages build-tools)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages databases)
>    #:use-module (gnu packages emacs)
> @@ -81,15 +82,18 @@ (define-module (gnu packages scheme)
>    #:use-module (gnu packages lisp-check)
>    #:use-module (gnu packages lisp-xyz)
>    #:use-module (gnu packages m4)
> +  #:use-module (gnu packages man)
>    #:use-module (gnu packages multiprecision)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages netpbm)
>    #:use-module (gnu packages pcre)
> +  #:use-module (gnu packages perl)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages sqlite)
>    #:use-module (gnu packages tex)
>    #:use-module (gnu packages texinfo)
>    #:use-module (gnu packages tls)
> +  #:use-module (gnu packages version-control)
>    #:use-module (gnu packages xorg)
>    #:use-module (srfi srfi-1)
>    #:use-module (ice-9 match))
> @@ -618,6 +622,59 @@ (define-public chibi-scheme
>  threads.")
>      (license bsd-3)))
>  
> +(define-public unsyntax
> +  (let ((commit "144772eeef4a812dd79515b67010d33ad2e7e890")
> +        (revision "0"))
> +    (package
> +      (name "unsyntax")
> +      (version (git-version "0.0.3" revision commit))
> +      (home-page "https://www.unsyntax.org")

HOME-PAGE should move before SYNOPSIS.

> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://gitlab.com/nieper/unsyntax.git")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32 "1ia58xdrywsm0dg19kmkghnrgw6gj2bsaypyjmbpirrila73cqk0"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       (list #:make-flags
> +             #~(list "gl_public_submodule_commit=") ; disable submodule checks
> +             #:phases
> +             #~(modify-phases %standard-phases
> +                 (add-before 'bootstrap 'prepare-bootstrap
> +                   (lambda _
> +                     ;; Unsyntax relies on bootstrap to fetch gnulib, we use
> +                     ;; the sources from guix's gnulib package instead.
> +                     (copy-recursively (getenv "GNULIB_SRCDIR") ".gnulib")
> +                     (setenv "GNULIB_SRCDIR" ".gnulib")
> +                     (patch-shebang ".gnulib/gnulib-tool")
> +                     (patch-shebang ".gnulib/build-aux/bootstrap")
> +                     (patch-shebang ".gnulib/build-aux/git-version-gen")
> +                     (patch-shebang ".gnulib/build-aux/prefix-gnulib-mk")
> +                     ;; The bootstrap_sync option updates the bootstrap script
> +                     ;; and runs it with CONFIG_SHELL, make sure it's correct.
> +                     (setenv "CONFIG_SHELL" (which "sh"))
> +                     ;; Tell git-version-gen the correct version number.
> +                     (call-with-output-file ".tarball-version"
> +                       (lambda (port)
> +                         (display #$version port))))))))
> +      (native-inputs
> +       (list autoconf automake libtool git gnulib help2man perl texinfo))
> +      (propagated-inputs
> +       (list chibi-scheme))

why must add chibi-scheme to propagated-inputs? If necessary, please add a comment to indicate this

> +      (synopsis "Expander for R7RS programs")
> +      (description
> +       "Unsyntax is an implementation of the Scheme programming language,
> +specifically of its R7RS standard, and includes a number of extensions.
> +Unsyntax evaluates Scheme expressions and compiles and runs Scheme programs by
> +first expanding them into a minimal dialect of R7RS (small) without any
> +syntactic extensions.  The resulting expression or program is then evaluated
> +by an existing Scheme implementation.")
> +      (license expat))))
> +
>  (define-public sicp
>    (let ((commit "bda03f79d6e2e8899ac2b5ca6a3732210e290a79")
>          (revision "3"))
>
> base-commit: 5d3edff1a604414a3c42b89fcbc007e9d573993d