Subject: [bug#60372] [PATCH] gnu: lisp: Add lfe.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 21 Mar 2023 10:25:51 -0400

Hi,

jgart <[email-masked]> writes:

> * gnu/packages/lisp.scm (lfe): New variable.

I think that should go in (gnu packages erlang).  Also, the convention
is to use just 'gnu: ' as prefix, not 'gnu: module:'.

> Here's a v2 but this a WIP as the tests are disabled. Unless we can
> merge this and enable the tests later after we figure out whether we
> want to do that with rebar-build-system or via a custom phase?
>
> I have an issue open here asking about running the tests:
>
> https://github.com/lfe/lfe/issues/450
>
> I tried running the tests by manually calling rebar but I get a homeless-shelter write error.

You could try setting HOME to /tmp.  Search for existing set-HOME
phases in the code base.

> For test commands that I tried see the following section in the lfe project's CI:
>
> https://github.com/lfe/lfe/blob/develop/.github/workflows/cicd.yml#L36
>
> If anyone would like to collaborate on this patch feel free to make
> changes and just list me as co-author with you.
>
> all best,
>
> jgart
> ---
>  gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>
> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
> index 753952152e..67105a5c93 100644
> --- a/gnu/packages/lisp.scm
> +++ b/gnu/packages/lisp.scm
> @@ -66,6 +66,7 @@ (define-module (gnu packages lisp)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages dbm)
>    #:use-module (gnu packages ed)
> +  #:use-module (gnu packages erlang)
>    #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages gcc)
>    #:use-module (gnu packages gettext)
> @@ -1228,6 +1229,40 @@ (define-public picolisp
>         (inherit picolisp32)
>         (name "picolisp")))))
>
> +(define-public lfe
> +  (package
> +    (name "lfe")
> +    (version "2.0.1")
> +    (source
> +      (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/lfe/lfe")
> +             (commit version)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "0a5cfnk3021idvv4bv2lvnksjy9d0yyd13bnj793ks86j5f3hdv5"))))
> +    (build-system gnu-build-system)
> +    (inputs (list erlang))
> +    (arguments
> +      (list #:tests? #f
> +            #:make-flags
> +            #~(list (string-append "PREFIX=" #$output))
> +            #:phases
> +            #~(modify-phases %standard-phases
> +                (delete 'configure)
> +                ;; https://github.com/lfe/lfe/pull/449
> +                (add-after 'unpack 'patch-gcc
> +                  (lambda* (#:key inputs #:allow-other-keys)
> +                    (substitute* "Makefile"
> +                      (("cc") #$(cc-for-target))))))))

You can set 'cc' as a Make flag; that'd be more elegant.

-- 
Thanks,
Maxim