Message ID | 20221228040545.30885-1-jgart@dismail.de |
---|---|
State | New |
Headers | show |
Series | [bug#60372,v2] gnu: lisp: Add lfe. | expand |
Hi, jgart <jgart@dismail.de> 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.
Hi Maxim, Thanks for the review. I think this will need to be written in terms of the rebar-build-system: https://github.com/lfe/lfe/issues/441 Otherwise, it might be painful to run the tests. Even upstream is unsure of how to run the tests if building with a Makefile. Just leaving this additional note here for when I get back to this. all best, jgart
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)))))))) + (synopsis "Lisp Flavoured Erlang") + (description "LFE, Lisp Flavoured Erlang, is a lisp syntax front-end +to the Erlang compiler. Code produced with LFE is compatible with normal +Erlang code. An @code{lfe} evaluator and shell is also included.") + (home-page "https://lfe.io/") + (license license:asl2.0))) + (define-public janet (package (name "janet")