Commit Message
* gnu/packages/games.scm (mrrescue): New variable.
---
gnu/packages/games.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
Comments
宋文武 <iyzsong@gmail.com> writes:
> * gnu/packages/games.scm (mrrescue): New variable.
> ---
> gnu/packages/games.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 48 insertions(+)
>
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index d386e2c..8d321fc 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -2856,3 +2856,51 @@ programmers may also add their own favorite language.")
> application that locks the keyboard and mouse and instead displays bright
> colors, pictures, and sounds.")
> (license license:gpl3+)))
> +
> +(define-public mrrescue
> + (package
> + (name "mrrescue")
> + (version "1.02e")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append
> + "https://github.com/SimonLarsen/mrrescue/releases/"
> + "download/" version "/" name version ".love"))
> + (file-name (string-append name "-" version ".love"))
What is this file? Are these sources or is this a binary image?
> + (sha256
> + (base32
> + "0jwzbwkgp1l5ia6c7s760gmdirbsncp6nfqp7vqdqsfb63la9gl2"))))
> + (build-system trivial-build-system)
> + (arguments
> + '(#:modules ((guix build utils))
> + #:builder
> + (begin
> + (use-modules (guix build utils))
> + (let* ((out (assoc-ref %outputs "out"))
> + (bindir (string-append out "/bin"))
> + (prog (string-append bindir "/mrrescue"))
> + (source (assoc-ref %build-inputs "source"))
> + (guile (string-append (assoc-ref %build-inputs "guile")
> + "/bin/guile"))
> + (love (string-append (assoc-ref %build-inputs "love")
> + "/bin/love")))
> + (mkdir-p bindir)
> + (with-output-to-file prog
> + (lambda ()
> + (format #t "#!~a --no-auto-compile~%!#~%" guile)
> + (write `(execl ,love "mrrescue" ,source))
> + (newline)))
> + (chmod prog #o755)
> + #t))))
Is the “.love” file the source archive? In the repository I only see
“.lua” files. Shouldn’t we compile them from source?
~~ Ricardo
Am 17.09.2016 um 15:24 schrieb 宋文武:
> + (let* ((out (assoc-ref %outputs "out"))
> + (bindir (string-append out "/bin"))
> + (prog (string-append bindir "/mrrescue"))
> + (source (assoc-ref %build-inputs "source"))
> + (guile (string-append (assoc-ref %build-inputs "guile")
> + "/bin/guile"))
> + (love (string-append (assoc-ref %build-inputs "love")
> + "/bin/love")))
> + (mkdir-p bindir)
> + (with-output-to-file prog
> + (lambda ()
> + (format #t "#!~a --no-auto-compile~%!#~%" guile)
> + (write `(execl ,love "mrrescue" ,source))
> + (newline)))
This looks like you are creating a starter-script which is pointing to
the source. This will not work, since the source will not be installed
when installing the package.
You want to
- copy the source file into (string-append out "/share/" ,name)
- create a starter script
I also suggest using a shell-script as starter (instead of a guile
wrapper), since this is more natural for me.
Ricardo Wurmus <rekado@elephly.net> writes:
> 宋文武 <iyzsong@gmail.com> writes:
>
>> * gnu/packages/games.scm (mrrescue): New variable.
>> ---
>> gnu/packages/games.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 48 insertions(+)
>>
>> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
>> index d386e2c..8d321fc 100644
>> --- a/gnu/packages/games.scm
>> +++ b/gnu/packages/games.scm
>> @@ -2856,3 +2856,51 @@ programmers may also add their own favorite language.")
>> application that locks the keyboard and mouse and instead displays bright
>> colors, pictures, and sounds.")
>> (license license:gpl3+)))
>> +
>> +(define-public mrrescue
>> + (package
>> + (name "mrrescue")
>> + (version "1.02e")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (string-append
>> + "https://github.com/SimonLarsen/mrrescue/releases/"
>> + "download/" version "/" name version ".love"))
>> + (file-name (string-append name "-" version ".love"))
>
> What is this file? Are these sources or is this a binary image?
>
>> [...]
>
> Is the “.love” file the source archive? In the repository I only see
> “.lua” files. Shouldn’t we compile them from source?
It's both the love2d package format and source archive [1], which is
just a zip file of the project directory.
[1] https://love2d.org/wiki/Game_Distribution
Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
> Am 17.09.2016 um 15:24 schrieb 宋文武:
>> + (let* ((out (assoc-ref %outputs "out"))
>> + (bindir (string-append out "/bin"))
>> + (prog (string-append bindir "/mrrescue"))
>> + (source (assoc-ref %build-inputs "source"))
>> + (guile (string-append (assoc-ref %build-inputs "guile")
>> + "/bin/guile"))
>> + (love (string-append (assoc-ref %build-inputs "love")
>> + "/bin/love")))
>> + (mkdir-p bindir)
>> + (with-output-to-file prog
>> + (lambda ()
>> + (format #t "#!~a --no-auto-compile~%!#~%" guile)
>> + (write `(execl ,love "mrrescue" ,source))
>> + (newline)))
>
> This looks like you are creating a starter-script which is pointing to
> the source. This will not work, since the source will not be installed
> when installing the package.
Yes, but it works. The source is referenced by the script, so it will
be downloaded into the store.
>
> You want to
>
> - copy the source file into (string-append out "/share/" ,name)
>
> - create a starter script
>
> I also suggest using a shell-script as starter (instead of a guile
> wrapper), since this is more natural for me.
OK, both are fine to me.
@@ -2856,3 +2856,51 @@ programmers may also add their own favorite language.")
application that locks the keyboard and mouse and instead displays bright
colors, pictures, and sounds.")
(license license:gpl3+)))
+
+(define-public mrrescue
+ (package
+ (name "mrrescue")
+ (version "1.02e")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/SimonLarsen/mrrescue/releases/"
+ "download/" version "/" name version ".love"))
+ (file-name (string-append name "-" version ".love"))
+ (sha256
+ (base32
+ "0jwzbwkgp1l5ia6c7s760gmdirbsncp6nfqp7vqdqsfb63la9gl2"))))
+ (build-system trivial-build-system)
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (bindir (string-append out "/bin"))
+ (prog (string-append bindir "/mrrescue"))
+ (source (assoc-ref %build-inputs "source"))
+ (guile (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guile"))
+ (love (string-append (assoc-ref %build-inputs "love")
+ "/bin/love")))
+ (mkdir-p bindir)
+ (with-output-to-file prog
+ (lambda ()
+ (format #t "#!~a --no-auto-compile~%!#~%" guile)
+ (write `(execl ,love "mrrescue" ,source))
+ (newline)))
+ (chmod prog #o755)
+ #t))))
+ (inputs
+ `(("guile" ,guile-2.0)
+ ("love" ,love)))
+ (home-page "http://tangramgames.dk/games/mrrescue")
+ (synopsis "Arcade-style fire fighting game")
+ (description
+ "Mr. Rescue is an arcade styled 2d action game centered around evacuating
+civilians from burning buildings. The game features fast paced fire
+extinguishing action, intense boss battles, a catchy soundtrack and lots of
+throwing people around in pseudo-randomly generated buildings.")
+ (license (list license:zlib ; for source code
+ license:cc-by-sa3.0)))) ; for graphics and music assets