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

From: Marius Bakke <[email-masked]>
Date: Thu, 23 Mar 2017 18:49:12 +0100

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.

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