Subject: Re: bug#26222: [PATCH] gnu: freedoom: Avoid the need to propagate prboom-plus.

From: Kei Kebreau <[email-masked]>
Date: Thu, 23 Mar 2017 22:46:03 -0400

Marius Bakke <[email-masked]> writes:

> Kei Kebreau <[email-masked]> writes:
>
>> * gnu/packages/games.scm (freedoom)[arguments]: Substitute shell
>> variable assignment in start script for a direct engine launch.
>> ---
>>  gnu/packages/games.scm | 19 ++++++++++++-------
>>  1 file changed, 12 insertions(+), 7 deletions(-)
>>
>> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
>> index 67fcb7b49..401ba4444 100644
>> --- a/gnu/packages/games.scm
>> +++ b/gnu/packages/games.scm
>> @@ -162,14 +162,19 @@
>>                         (("freedoom2.png")
>>                          "-define png:exclude-chunks=date freedoom2.png"))
>>                       ;; Make sure that the install scripts know where to find
>> -                     ;; the appropriate WAD files.
>> +                     ;; the appropriate WAD files and Doom engine.
>> +                     ;; Do this by turning a shell variable assignment into a
>> +                     ;; direct engine launch and exit.
>>                       (substitute* "dist/freedoom"
>> -                       (("IWAD=freedm.wad")
>> -                        (string-append "IWAD=" wad-dir "/freedm.wad"))
>> -                       (("IWAD=freedoom1.wad")
>> -                        (string-append "IWAD=" wad-dir "/freedoom1.wad"))
>> -                       (("IWAD=freedoom2.wad")
>> -                        (string-append "IWAD=" wad-dir "/freedoom2.wad")))
>> +                       (("IWAD=")
>> +                        (string-append (assoc-ref inputs "prboom-plus")
>> +                                       "/bin/prboom-plus -iwad "))
>> +                       (("freedm.wad")
>> +                        (string-append  wad-dir "/freedm.wad \"$@\"; exit $?"))
>> +                       (("freedoom1.wad")
>> +                        (string-append  wad-dir "/freedoom1.wad \"$@\"; exit $?"))
>> +                       (("freedoom2.wad")
>> +                        (string-append wad-dir "/freedoom2.wad \"$@\"; exit $?")))
>
> From reading the "dist/freedoom" shell script, it looks like it tries
> prboom-plus automatically if it exists in PATH. Does this not work? It
> also tries a bunch of other engines, so I don't think we should hard
> code one.
>

In that case, we could instead leave the package as is and have users
install prboom-plus (or future engines when they are packaged)
manually. Freedoom's package description already mentions that it needs
a compatible engine to run. If you think that's enough for a casual user
to notice, I'm fine with dropping the patch.

>>                       #t))))))
>>     (native-inputs
>>      `(("asciidoc" ,asciidoc)
>> -- 
>> 2.12.0