Subject: [bug#59851] Add Moonlight

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 16 Jan 2023 10:03:13 -0500

Hello,

phodina <[email-masked]> writes:

> Hello,
>
> these patches add support for game streaming solution for Nvidia GameStream protocol. The client is open source. However, the games and the server is a non-libre application.
>
> ----
> Petr
> From 3591443080ca8ae4fa775e6ea697f5e1b999a39b Mon Sep 17 00:00:00 2001
> From: Petr Hodina <[email-masked]>
> Date: Sat, 3 Dec 2022 10:32:43 +0100
> Subject: [PATCH 2/6] gnu: Add enet-moonlight.
>
> * gnu/packages/networking.scm (enet-moonlight): New variable.
>
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index f5276e330e..27f67c01bf 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -2591,6 +2591,43 @@ (define-public enet
>      (home-page "http://enet.bespin.org")
>      (license license:expat)))
>  
> +(define-public enet-moonlight
> +  (let ((commit "4cde9cc3dcc5c30775a80da1de87f39f98672a31")
> +        (revision "1"))
> +(package
> +  (inherit enet)
> +  (name "enet")
> +  (version commit)
> +  (source (origin
> +            (method git-fetch)
> +            (uri (git-reference
> +             (url "https://github.com/cgutman/enet")
> +             (commit version)))
> +            (file-name (git-file-name name version))
> +            (sha256
> +             (base32
> +              "07sr32jy989ja23fwg8bvrq2slgm7bhfw6v3xq7yczbw86c1dndv"))))
> +    (build-system cmake-build-system)
> +       (arguments
> +       '(#:tests? #f
> +         #:phases
> +         (modify-phases %standard-phases
> +          (add-after 'unpack 'build-share-lib
> +          (lambda* _
> +          (substitute* "CMakeLists.txt"
> +          (("STATIC") "SHARED"))))

Perhaps having -DBUILD_SHARED_LIBS=ON in #:configure-flags would be
enough.

> +          (replace 'install
> +           (lambda* (#:key outputs source #:allow-other-keys)
> +               (let* ((out (assoc-ref outputs "out"))
> +                      (include (string-append out "/include"))
> +                      (lib (string-append out "/lib")))
> +               (mkdir-p include)
> +               (mkdir-p lib)
> +               (copy-recursively (string-append source "/include") include)
> +               (install-file "libenet.so" lib)))))))

It'd be preferable to use gexps and associated variables.

> +    (native-inputs
> +     (list pkg-config)))))
> +

Otherwise LGTM.

-- 
Thanks,
Maxim