Subject: [bug#35795] [PATCH] squirrel: add at 3.1

From: Kei Kebreau <[email-masked]>
Date: Wed, 22 May 2019 02:51:06 -0400

Hi Andy! Thanks for this patch. I have a few small tips below.

> From: Andy Tai <[email-masked]>
>
> ---
>  gnu/packages/squirrel.scm | 62 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
>  create mode 100644 gnu/packages/squirrel.scm
>
> diff --git a/gnu/packages/squirrel.scm b/gnu/packages/squirrel.scm
> new file mode 100644
> index 0000000000..f77e0e3024
> --- /dev/null
> +++ b/gnu/packages/squirrel.scm
> @@ -0,0 +1,62 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2019 Li-cheng (Andy) Tai, [email-masked]

Conventionally, we surround emails with angle brackets on copyright
lines like so:

;;; Copyright © 2019 Li-cheng (Andy) Tai <[email-masked]>

> +;;
> +;;; 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 <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages squirrel)
> +  #:use-module (gnu packages)
> +  #:use-module (gnu packages admin)
> +  #:use-module (gnu packages base)
> +  #:use-module (gnu packages bash)
> +  #:use-module (gnu packages cmake)
> +  #:use-module (guix build-system cmake)
> +  #:use-module (guix download)
> +  #:use-module (guix git-download)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix build utils)
> +  #:use-module (guix packages)
> +  #:use-module (guix utils)
> +  #:use-module (ice-9 match)
> +  #:use-module (srfi srfi-1))
> +
> +(define-public squirrel
> +  (let ((commit "51137b84e66c4d526809fd8a59f4ba1d38138c76"))
> +    (package
> +    (name "squirrel")
> +    (version "3.1")
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/albertodemichelis/squirrel.git")
> +                      (commit commit)))
> +                (file-name (string-append name "-" version "-checkout"))
> +                (sha256
> +                 (base32
> +                  "0vbiv1q3qcy2vj8y0b9a2ckswl9ld398n3jnxijvwddrjgya5zav"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +      '(#:phases
> +        (modify-phases %standard-phases
> +         (delete 'check))))            ; no tests

Using "#:tests? #f" is much shorter and does the same thing as the
build phase modification you put above. See the "gnushogi" package
definition in gnu/packages/games.scm for an example.

> +    (native-inputs
> +     `(("cmake" ,cmake)))
> +    (home-page "https://squirrel-lang.org/")
> +    (synopsis "High level imperative, object-oriented programming language")
> +    (description
> + "Squirrel is a high level imperative, object-oriented programming
> language,
> +designed to be a light-weight scripting language that fits in the size, memory
> +bandwidth, and real-time requirements of applications like video games.")
> +    (license license:zlib))))

Squirrel's license looks like the Expat license to me. The Zlib license
has a numbered list of restrictions, which Squirrel's does not.

Also, when adding a new file to the gnu/packages directory, the file
must be added to the GNU_SYSTEM_MODULES list of files in gnu/local.mk.

I've tested your submitted patch with all the changes I mentioned above, but
I am not sure whether or not there is an existing module we may place
this package in instead of creating a new one. I'll get back to you ASAP
on that.

Otherwise, thank you again for this patch, and I look forward to seeing
it as part of Guix! :)