Subject: Re: bug#25729: [PATCH] gnu: Add lush2.

From: Kei Kebreau <[email-masked]>
Date: Tue, 28 Feb 2017 23:50:49 -0500

[email-masked] writes:

> From: ng0 <[email-masked]>
>
> * gnu/packages/lisp.scm (lush2): New variable.
> ---
>  gnu/packages/lisp.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 68 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
> index 80161de01..de87eaa21 100644
> --- a/gnu/packages/lisp.scm
> +++ b/gnu/packages/lisp.scm
> @@ -3,7 +3,7 @@
>  ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email-masked]>
>  ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
>  ;;; Copyright © 2016 Federico Beffa <[email-masked]>
> -;;; Copyright © 2016 ng0 <[email-masked]>
> +;;; Copyright © 2016, 2017 ng0 <[email-masked]>
>  ;;; Copyright © 2016 Andy Patterson <[email-masked]>
>  ;;; Copyright © 2017 Ricardo Wurmus <[email-masked]>
>  ;;;
> @@ -37,16 +37,27 @@
>    #:use-module (guix build-system asdf)
>    #:use-module (guix build-system trivial)
>    #:use-module (gnu packages base)
> +  #:use-module (gnu packages compression)
> +  #:use-module (gnu packages fontutils)
> +  #:use-module (gnu packages maths)
>    #:use-module (gnu packages multiprecision)
>    #:use-module (gnu packages bdw-gc)
>    #:use-module (gnu packages libffi)
>    #:use-module (gnu packages libffcall)
>    #:use-module (gnu packages readline)
> +  #:use-module (gnu packages sdl)
>    #:use-module (gnu packages libsigsegv)
> +  #:use-module (gnu packages linux)
>    #:use-module (gnu packages admin)
>    #:use-module (gnu packages ed)
> +  #:use-module (gnu packages gl)
> +  #:use-module (gnu packages gcc)
> +  #:use-module (gnu packages glib)
> +  #:use-module (gnu packages gettext)
>    #:use-module (gnu packages m4)
> +  #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages version-control)
> +  #:use-module (gnu packages xorg)
>    #:use-module (ice-9 match)
>    #:use-module (srfi srfi-1))
>  
> @@ -530,6 +541,62 @@ The core is 12 builtin special forms and 33 builtin functions.")
>        (home-page "https://github.com/JeffBezanson/femtolisp")
>        (license license:bsd-3))))
>  
> +(define-public lush2
> +  (package
> +    (name "lush2")
> +    (version "2.0.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "http://sourceforge.net/projects/"
> +                           "lush/files/lush2/" name
> +                           "-" version ".tar.gz"))

I changed the URL to the "mirror://" format, and I added a snippet here
to remove time-based reproducibility issues.

> +       (sha256
> +        (base32
> +         "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(;; We have to add these LIBS so that they are found.
> +       #:configure-flags (list "LIBS=-lz"
> +                               "X_EXTRA_LIBS=-lfontconfig"
> +                               "--with-x")
> +       #:tests? #f)) ; No make check.
> +    (inputs
> +     `(("alsa-lib" ,alsa-lib)
> +       ("sdl" ,sdl)
> +       ("sdl-image" ,sdl-image)
> +       ("sdl-mixer" ,sdl-mixer)
> +       ("sdl-net" ,sdl-net)
> +       ("sdl-ttf" ,sdl-ttf)
> +       ("lapack" ,lapack)
> +       ("libxft" ,libxft)
> +       ("fontconfig" ,fontconfig)
> +       ("gsl" ,gsl)
> +       ("openblas" ,openblas)
> +       ("glu" ,glu)
> +       ("mesa" ,mesa)
> +       ("mesa-utils" ,mesa-utils)
> +       ("binutils" ,binutils)
> +       ("intltool" ,intltool)

I made intltool a native input according to the linter's output. Lush
still builds fine.

> +       ("libiberty" ,libiberty)
> +       ("readline" ,readline)
> +       ("zlib" ,zlib)
> +       ("gettext-minimal" ,gettext-minimal)))
> +    (synopsis "Lisp Universal Shell")
> +    (description
> +     "Lush is an object-oriented Lisp interpreter/compiler with features
> +designed to please people who want to prototype large numerical
> +applications.  Lush includes an extensive library of
> +vector/matrix/tensor manipulation, numerous numerical libraries
> +(including GSL, LAPACK, and BLAS), a set of graphic functions, a
> +simple GUI toolkit, and interfaces to various graphic and multimedia
> +libraries such as OpenGL, SDL, Video4Linux, and ALSA (video/audio
> +grabbing), and others.  Lush is an ideal frontend script language for
> +programming projects written in C or other languages.  Lush also has
> +libraries for Machine Learning, Neural Nets and statistical estimation.")
> +    (home-page "http://lush.sourceforge.net/")
> +    (license license:lgpl2.1)))

The copyright file had an "or later" clause, so I fixed the license.

> +
>  (define-public sbcl-alexandria
>    (let ((revision "1")
>          (commit "926a066611b7b11cb71e26c827a271e500888c30"))

Thanks for the patch! Pushed as 05c638984dcbd02e51a8fc47431fbce405a4c614.