Subject: [bug#59851] Add Moonlight

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 17 Jan 2023 11:35:29 -0500

Hi Petr,

phodina <[email-masked]> writes:

> From a18528bd178c177f50e73de4b89ccbf758ab1774 Mon Sep 17 00:00:00 2001
> From: Petr Hodina <[email-masked]>
> Date: Sat, 3 Dec 2022 10:36:38 +0100
> Subject: [PATCH v2 6/6] gnu: Add moonlight-qt.
>
> * gnu/packages/games.scm (moonlight-qt): New variable.
>
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index 5f5bd8795e..6600c1ee60 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -5841,6 +5841,66 @@ (define-public bambam
>  colors, pictures, and sounds.")
>      (license license:gpl3+)))
>  
> +(define-public moonlight-qt
> +  (package
> +    (name "moonlight-qt")
> +    (version "3.1.4")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/moonlight-stream/moonlight-qt")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "02y2rbiiawhj1dvgxdaz8k9kpz6zkv20zsk17fbqj8259m3g5xr5"))))
> +    (build-system qt-build-system)
> +    (arguments
> +     (list #:tests? #f ;no test suite
> +           #:phases #~(modify-phases %standard-phases
> +                        (replace 'configure
> +                          (lambda* _
> +                            (symlink (string-append #$(this-package-input
> +                                                       "sdl-gamecontrollerdb")
> +                                                    "/gamecontrollerdb.txt")
> +                             "app/SDL_GameControllerDB/gamecontrollerdb.txt")
> +                            (substitute* "moonlight-qt.pro"
> +                              (("moonlight-common-c \\\\")
> +                               "#moonlight-common-c \\")
> +                              (("qmdnsengine \\\\")
> +                               "#qmdnsengine \\")
> +                              (("app \\\\")
> +                               "app")
> +                              (("app.depends")
> +                               "INCLUDEPATH +=")
> +                              (("h264bitstream \\\\")
> +                               "#h264bitstream \\"))
> +                            (invoke "qmake"
> +                                    (string-append "PREFIX="
> +                                                   #$output)))))))

The above could benefit from a comment explaining what this is about
(mostly unbundling libraries, it seems).

> +    (native-inputs (list pkg-config qttools-5))
> +    (inputs (list ffmpeg
> +                  h264bitstream
> +                  libva
> +                  libvdpau
> +                  moonlight-common
> +                  openssl
> +                  opus
> +                  qmdnsengine
> +                  qtbase-5
> +                  qtdeclarative-5
> +                  qtquickcontrols2-5
> +                  qtsvg-5
> +                  sdl2
> +                  sdl2-ttf
> +                  sdl-gamecontrollerdb))
> +    (synopsis "GameStream client")
> +    (description
> +     "Moonlight is an open source implementation of NVIDIA's GameStream, as
> +used by the NVIDIA Shield.")

There's no need to use 'open source' or similar adjective in Guix, as
this is already implied for the whole collection of software offered.

Thank you, and apologies for sending my comments in multiple small
chunks.

-- 
Thanks,
Maxim