commit:     d5528cd4217319515d6f2ca6a5b0676daa52f2c4
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  4 17:09:04 2023 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Jun  4 20:31:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d5528cd4

net-misc/moonlight: New package

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 net-misc/moonlight/Manifest                        |   1 +
 .../files/moonlight-4.3.1-automagic.patch          | 136 +++++++++++++++++++++
 .../moonlight/files/moonlight-9999-automagic.patch | 136 +++++++++++++++++++++
 net-misc/moonlight/metadata.xml                    |  19 +++
 net-misc/moonlight/moonlight-4.3.1.ebuild          |  83 +++++++++++++
 net-misc/moonlight/moonlight-9999.ebuild           |  84 +++++++++++++
 6 files changed, 459 insertions(+)

diff --git a/net-misc/moonlight/Manifest b/net-misc/moonlight/Manifest
new file mode 100644
index 000000000000..acf0147bd96b
--- /dev/null
+++ b/net-misc/moonlight/Manifest
@@ -0,0 +1 @@
+DIST MoonlightSrc-4.3.1.tar.gz 71454450 BLAKE2B 
cd6d8d95c3d53dbf73850cd30f86bdb9837806a642472454d70f6abee20ae91bc79c0671c4da0a74fb5f43086841a8318718c4f2f4e4768b395fb4b38d1dde9e
 SHA512 
f5f7b23929aadb87716470522a315cba40d8155be6b76297eab4107e0fef71b48f9f4c9a4cc2b58bd48579db052a8ca8ecda9b49c78c3d229863a30886cf1847

diff --git a/net-misc/moonlight/files/moonlight-4.3.1-automagic.patch 
b/net-misc/moonlight/files/moonlight-4.3.1-automagic.patch
new file mode 100644
index 000000000000..10a6914f4dea
--- /dev/null
+++ b/net-misc/moonlight/files/moonlight-4.3.1-automagic.patch
@@ -0,0 +1,136 @@
+From ff49dcfa47f673bcd27314b03ba68f99f7619c39 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <ch...@gentoo.org>
+Date: Sat, 3 Jun 2023 17:51:00 +0100
+Subject: [PATCH] Allow forced disabling of features instead of relying on
+ pkg-config
+
+So-called "automagic" behaviour is considered unhelpful by
+distributions. A user may unintentionally build Moonlight with VDPAU
+support simply because they had that library installed, only for the
+whole application to break when they uninstall the library later. This
+could happen on any distribution, but it should especially be avoided on
+source-based distributions, where the user would not expect the package
+manager to encounter such issues.
+
+This commit is best viewed without whitespace changes.
+---
+ app/app.pro | 92 +++++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 57 insertions(+), 35 deletions(-)
+
+diff --git a/app/app.pro b/app/app.pro
+index dc21b854..45ee1f89 100644
+--- a/app/app.pro
++++ b/app/app.pro
+@@ -65,52 +65,74 @@ unix:!macx {
+     CONFIG += link_pkgconfig
+     PKGCONFIG += openssl sdl2 SDL2_ttf opus
+ 
+-    packagesExist(libavcodec) {
+-        PKGCONFIG += libavcodec libavutil
+-        CONFIG += ffmpeg
+-
+-        packagesExist(libva) {
+-            packagesExist(libva-x11) {
+-                CONFIG += libva-x11
++    !disable-ffmpeg {
++        packagesExist(libavcodec) {
++            PKGCONFIG += libavcodec libavutil
++            CONFIG += ffmpeg
++
++            !disable-libva {
++                packagesExist(libva) {
++                    !disable-x11 {
++                        packagesExist(libva-x11) {
++                            CONFIG += libva-x11
++                        }
++                    }
++                    !disable-wayland {
++                        packagesExist(libva-wayland) {
++                            CONFIG += libva-wayland
++                        }
++                    }
++                    !disable-libdrm {
++                        packagesExist(libva-drm) {
++                            CONFIG += libva-drm
++                        }
++                    }
++                    CONFIG += libva
++                }
+             }
+-            packagesExist(libva-wayland) {
+-                CONFIG += libva-wayland
++
++            !disable-libvdpau {
++                packagesExist(vdpau) {
++                    CONFIG += libvdpau
++                }
+             }
+-            packagesExist(libva-drm) {
+-                CONFIG += libva-drm
++
++            !disable-mmal {
++                packagesExist(mmal) {
++                    PKGCONFIG += mmal
++                    CONFIG += mmal
++                }
+             }
+-            CONFIG += libva
+-        }
+ 
+-        packagesExist(vdpau) {
+-            CONFIG += libvdpau
+-        }
++            !disable-libdrm {
++                packagesExist(libdrm) {
++                    PKGCONFIG += libdrm
++                    CONFIG += libdrm
++                }
++            }
+ 
+-        packagesExist(mmal) {
+-            PKGCONFIG += mmal
+-            CONFIG += mmal
++            !disable-cuda {
++                packagesExist(ffnvcodec) {
++                    PKGCONFIG += ffnvcodec
++                    CONFIG += cuda
++                }
++            }
+         }
+ 
+-        packagesExist(libdrm) {
+-            PKGCONFIG += libdrm
+-            CONFIG += libdrm
++        !disable-wayland {
++            packagesExist(wayland-client) {
++                DEFINES += HAS_WAYLAND
++                PKGCONFIG += wayland-client
++            }
+         }
+ 
+-        packagesExist(ffnvcodec) {
+-            PKGCONFIG += ffnvcodec
+-            CONFIG += cuda
++        !disable-x11 {
++            packagesExist(x11) {
++                DEFINES += HAS_X11
++                PKGCONFIG += x11
++            }
+         }
+     }
+-
+-    packagesExist(wayland-client) {
+-        DEFINES += HAS_WAYLAND
+-        PKGCONFIG += wayland-client
+-    }
+-
+-    packagesExist(x11) {
+-        DEFINES += HAS_X11
+-        PKGCONFIG += x11
+-    }
+ }
+ win32 {
+     LIBS += -llibssl -llibcrypto -lSDL2 -lSDL2_ttf -lavcodec -lavutil -lopus 
-ldxgi -ld3d11
+-- 
+2.40.1
+

diff --git a/net-misc/moonlight/files/moonlight-9999-automagic.patch 
b/net-misc/moonlight/files/moonlight-9999-automagic.patch
new file mode 100644
index 000000000000..1a2b56ceea7a
--- /dev/null
+++ b/net-misc/moonlight/files/moonlight-9999-automagic.patch
@@ -0,0 +1,136 @@
+From 3bd5c3728b5469e88dcba794e371e9b028c47df8 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <ch...@gentoo.org>
+Date: Sat, 3 Jun 2023 17:51:00 +0100
+Subject: [PATCH] Allow forced disabling of features instead of relying on
+ pkg-config
+
+So-called "automagic" behaviour is considered unhelpful by
+distributions. A user may unintentionally build Moonlight with VDPAU
+support simply because they had that library installed, only for the
+whole application to break when they uninstall the library later. This
+could happen on any distribution, but it should especially be avoided on
+source-based distributions, where the user would not expect the package
+manager to encounter such issues.
+
+This commit is best viewed without whitespace changes.
+---
+ app/app.pro | 92 +++++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 57 insertions(+), 35 deletions(-)
+
+diff --git a/app/app.pro b/app/app.pro
+index 82d941e7..85f38dd4 100644
+--- a/app/app.pro
++++ b/app/app.pro
+@@ -65,52 +65,74 @@ unix:!macx {
+     CONFIG += link_pkgconfig
+     PKGCONFIG += openssl sdl2 SDL2_ttf opus
+ 
+-    packagesExist(libavcodec) {
+-        PKGCONFIG += libavcodec libavutil
+-        CONFIG += ffmpeg
+-
+-        packagesExist(libva) {
+-            packagesExist(libva-x11) {
+-                CONFIG += libva-x11
++    !disable-ffmpeg {
++        packagesExist(libavcodec) {
++            PKGCONFIG += libavcodec libavutil
++            CONFIG += ffmpeg
++
++            !disable-libva {
++                packagesExist(libva) {
++                    !disable-x11 {
++                        packagesExist(libva-x11) {
++                            CONFIG += libva-x11
++                        }
++                    }
++                    !disable-wayland {
++                        packagesExist(libva-wayland) {
++                            CONFIG += libva-wayland
++                        }
++                    }
++                    !disable-libdrm {
++                        packagesExist(libva-drm) {
++                            CONFIG += libva-drm
++                        }
++                    }
++                    CONFIG += libva
++                }
+             }
+-            packagesExist(libva-wayland) {
+-                CONFIG += libva-wayland
++
++            !disable-libvdpau {
++                packagesExist(vdpau) {
++                    CONFIG += libvdpau
++                }
+             }
+-            packagesExist(libva-drm) {
+-                CONFIG += libva-drm
++
++            !disable-mmal {
++                packagesExist(mmal) {
++                    PKGCONFIG += mmal
++                    CONFIG += mmal
++                }
+             }
+-            CONFIG += libva
+-        }
+ 
+-        packagesExist(vdpau) {
+-            CONFIG += libvdpau
+-        }
++            !disable-libdrm {
++                packagesExist(libdrm) {
++                    PKGCONFIG += libdrm
++                    CONFIG += libdrm
++                }
++            }
+ 
+-        packagesExist(mmal) {
+-            PKGCONFIG += mmal
+-            CONFIG += mmal
++            !disable-cuda {
++                packagesExist(ffnvcodec) {
++                    PKGCONFIG += ffnvcodec
++                    CONFIG += cuda
++                }
++            }
+         }
+ 
+-        packagesExist(libdrm) {
+-            PKGCONFIG += libdrm
+-            CONFIG += libdrm
++        !disable-wayland {
++            packagesExist(wayland-client) {
++                CONFIG += wayland
++                PKGCONFIG += wayland-client
++            }
+         }
+ 
+-        packagesExist(ffnvcodec) {
+-            PKGCONFIG += ffnvcodec
+-            CONFIG += cuda
++        !disable-x11 {
++            packagesExist(x11) {
++                DEFINES += HAS_X11
++                PKGCONFIG += x11
++            }
+         }
+     }
+-
+-    packagesExist(wayland-client) {
+-        CONFIG += wayland
+-        PKGCONFIG += wayland-client
+-    }
+-
+-    packagesExist(x11) {
+-        DEFINES += HAS_X11
+-        PKGCONFIG += x11
+-    }
+ }
+ win32 {
+     LIBS += -llibssl -llibcrypto -lSDL2 -lSDL2_ttf -lavcodec -lavutil -lopus 
-ldxgi -ld3d11
+-- 
+2.40.1
+

diff --git a/net-misc/moonlight/metadata.xml b/net-misc/moonlight/metadata.xml
new file mode 100644
index 000000000000..7b6d9ea7ef4f
--- /dev/null
+++ b/net-misc/moonlight/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>ch...@gentoo.org</email>
+               <name>James Le Cuirot</name>
+       </maintainer>
+       <upstream>
+               <remote-id 
type="github">moonlight-stream/moonlight-qt</remote-id>
+       </upstream>
+       <use>
+               <flag name="cuda">Enable accelerated video rendering on NVIDIA 
hardware</flag>
+               <flag name="embedded">Optimize UI for fullscreen non-desktop 
usage</flag>
+               <flag name="glslow">Prefer direct KMS/DRM rendering over 
EGL/GLES rendering for better performance on some weaker GPUs</flag>
+               <flag name="libdrm">Enable video rendering via 
<pkg>x11-libs/libdrm</pkg></flag>
+               <flag name="mmal">Enable accelerated video rendering on the 
Raspberry Pi</flag>
+               <flag name="soundio">Enable sound output via 
<pkg>media-libs/libsoundio</pkg> instead of <pkg>media-libs/libsdl2</pkg></flag>
+       </use>
+</pkgmetadata>

diff --git a/net-misc/moonlight/moonlight-4.3.1.ebuild 
b/net-misc/moonlight/moonlight-4.3.1.ebuild
new file mode 100644
index 000000000000..382261a3d519
--- /dev/null
+++ b/net-misc/moonlight/moonlight-4.3.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} = 9999* ]]; then
+       EGIT_REPO_URI="https://github.com/moonlight-stream/moonlight-qt.git";
+       EGIT_SUBMODULES=( '*' -libs -soundio )
+       inherit git-r3
+else
+       
SRC_URI="https://github.com/moonlight-stream/moonlight-qt/releases/download/v${PV}/MoonlightSrc-${PV}.tar.gz";
+       KEYWORDS="~amd64 ~arm64"
+       S="${WORKDIR}"
+fi
+
+inherit qmake-utils xdg
+
+DESCRIPTION="NVIDIA GameStream (and Sunshine) client"
+HOMEPAGE="https://github.com/moonlight-stream/moonlight-qt";
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="cuda +libdrm embedded mmal soundio +vaapi vdpau wayland X"
+
+RDEPEND="
+       dev-libs/openssl:=
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtnetwork:5
+       dev-qt/qtquickcontrols2:5
+       dev-qt/qtsvg:5
+       dev-qt/qtwidgets:5
+       media-libs/libglvnd
+       media-libs/libpulse
+       media-libs/libsdl2[haptic,kms,joystick,sound,video]
+       media-libs/opus
+       media-libs/sdl2-ttf
+       media-video/ffmpeg:=[cuda?,libdrm?,mmal?]
+       libdrm? ( x11-libs/libdrm )
+       soundio? ( media-libs/libsoundio:= )
+       vaapi? ( media-libs/libva:=[wayland?,X?] )
+       vdpau? ( x11-libs/libvdpau )
+       wayland? ( dev-libs/wayland )
+       X? ( x11-libs/libX11 )
+"
+
+DEPEND="
+       ${RDEPEND}
+"
+
+BDEPEND="
+       dev-qt/qtcore
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-automagic.patch"
+)
+
+src_prepare() {
+       default
+
+       # Force system libsoundio over bundled version.
+       rm -r soundio/ || die
+}
+
+src_configure() {
+       eqmake5 PREFIX="${EPREFIX}/usr" CONFIG+=" \
+               $(usex cuda "" disable-cuda) \
+               $(usex libdrm "" disable-libdrm) \
+               $(usex mmal "" disable-mmal) \
+               $(usex vaapi "" disable-libva) \
+               $(usex vdpau "" disable-libvdpau) \
+               $(usex wayland "" disable-wayland) \
+               $(usex X "" disable-x11) \
+               $(usev embedded) \
+               $(usev soundio) \
+       "
+}
+
+src_install() {
+       emake install INSTALL_ROOT="${D}"
+       einstalldocs
+}

diff --git a/net-misc/moonlight/moonlight-9999.ebuild 
b/net-misc/moonlight/moonlight-9999.ebuild
new file mode 100644
index 000000000000..906827ed9d2a
--- /dev/null
+++ b/net-misc/moonlight/moonlight-9999.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} = 9999* ]]; then
+       EGIT_REPO_URI="https://github.com/moonlight-stream/moonlight-qt.git";
+       EGIT_SUBMODULES=( '*' -libs -soundio )
+       inherit git-r3
+else
+       
SRC_URI="https://github.com/moonlight-stream/moonlight-qt/releases/download/v${PV}/MoonlightSrc-${PV}.tar.gz";
+       KEYWORDS="~amd64 ~arm64"
+       S="${WORKDIR}"
+fi
+
+inherit qmake-utils xdg
+
+DESCRIPTION="NVIDIA GameStream (and Sunshine) client"
+HOMEPAGE="https://github.com/moonlight-stream/moonlight-qt";
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="cuda +libdrm embedded glslow mmal soundio +vaapi vdpau wayland X"
+
+RDEPEND="
+       dev-libs/openssl:=
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtnetwork:5
+       dev-qt/qtquickcontrols2:5
+       dev-qt/qtsvg:5
+       dev-qt/qtwidgets:5
+       media-libs/libglvnd
+       media-libs/libpulse
+       media-libs/libsdl2[haptic,kms,joystick,sound,video]
+       media-libs/opus
+       media-libs/sdl2-ttf
+       media-video/ffmpeg:=[cuda?,libdrm?,mmal?]
+       libdrm? ( x11-libs/libdrm )
+       soundio? ( media-libs/libsoundio:= )
+       vaapi? ( media-libs/libva:=[wayland?,X?] )
+       vdpau? ( x11-libs/libvdpau )
+       wayland? ( dev-libs/wayland )
+       X? ( x11-libs/libX11 )
+"
+
+DEPEND="
+       ${RDEPEND}
+"
+
+BDEPEND="
+       dev-qt/qtcore
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-automagic.patch"
+)
+
+src_prepare() {
+       default
+
+       # Force system libsoundio over bundled version.
+       rm -r soundio/ || die
+}
+
+src_configure() {
+       eqmake5 PREFIX="${EPREFIX}/usr" CONFIG+=" \
+               $(usex cuda "" disable-cuda) \
+               $(usex libdrm "" disable-libdrm) \
+               $(usex mmal "" disable-mmal) \
+               $(usex vaapi "" disable-libva) \
+               $(usex vdpau "" disable-libvdpau) \
+               $(usex wayland "" disable-wayland) \
+               $(usex X "" disable-x11) \
+               $(usev embedded) \
+               $(usev glslow) \
+               $(usev soundio) \
+       "
+}
+
+src_install() {
+       emake install INSTALL_ROOT="${D}"
+       einstalldocs
+}

Reply via email to