diff options
author | James Le Cuirot <chewi@gentoo.org> | 2023-06-04 18:09:04 +0100 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2023-06-04 21:31:13 +0100 |
commit | d5528cd4217319515d6f2ca6a5b0676daa52f2c4 (patch) | |
tree | b1446a4e346db6c7a20340c5da788178598adc4a /net-misc | |
parent | media-libs/libsoundio: Keyword 2.0.0 for ~arm64 (diff) | |
download | gentoo-d5528cd4217319515d6f2ca6a5b0676daa52f2c4.tar.gz gentoo-d5528cd4217319515d6f2ca6a5b0676daa52f2c4.tar.bz2 gentoo-d5528cd4217319515d6f2ca6a5b0676daa52f2c4.zip |
net-misc/moonlight: New package
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/moonlight/Manifest | 1 | ||||
-rw-r--r-- | net-misc/moonlight/files/moonlight-4.3.1-automagic.patch | 136 | ||||
-rw-r--r-- | net-misc/moonlight/files/moonlight-9999-automagic.patch | 136 | ||||
-rw-r--r-- | net-misc/moonlight/metadata.xml | 19 | ||||
-rw-r--r-- | net-misc/moonlight/moonlight-4.3.1.ebuild | 83 | ||||
-rw-r--r-- | net-misc/moonlight/moonlight-9999.ebuild | 84 |
6 files changed, 459 insertions, 0 deletions
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 <chewi@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 <chewi@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>chewi@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 +} |