Re: [PATCH] gnu: Add Mr. Rescue.

2016-09-18 Thread 宋文武
Hartmut Goebel  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.



Re: [PATCH] gnu: Add Mr. Rescue.

2016-09-18 Thread 宋文武
Ricardo Wurmus  writes:

> 宋文武  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



Re: [PATCH] gnu: Add Mr. Rescue.

2016-09-18 Thread Hartmut Goebel
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.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |