this updates our version of moonlight-qt to something modern, we
are a few years behind and I don't think a changelog could be useful
here.

What I'm sure is the current moonlight-qt does not allow to render
the video when connecting to a modern sunshine server (moonlight
is a client, sunshine is the open source version of geforce protocol)

I had a weird behavior, an assertion in moonlight would crash it,
sometime it worked for a while then it would stop working completely,
and maybe it was working again after. The assertion checks that the
prefix length of the network interface (re0 for me) is positive,
and some debugging told me that it finds -1 for this value which
is wrong. I decided to add a patch to disable to check, I should
report this issue upstream.

I removed libdrm because it was failing to build due to linux headers
we don't have.

I removed the patch disabling wayland because we have wayland now
and it compiles fine with it. (I did not test under wayland though!)

ok?

diff --git a/games/moonlight-qt/Makefile b/games/moonlight-qt/Makefile
index 813f36673da..68eb5765332 100644
--- a/games/moonlight-qt/Makefile
+++ b/games/moonlight-qt/Makefile
@@ -1,11 +1,10 @@
 COMMENT =              open-source nvidia gamestream client
 
-V =                    3.1.4
+V =                    5.0.1
 PKGNAME =              moonlight-qt-${V}
 
 DISTNAME =             MoonlightSrc-${V}
 SITES =                        
https://github.com/moonlight-stream/moonlight-qt/releases/download/v${V}/
-REVISION =             2
 
 CATEGORIES =           games
 
@@ -17,11 +16,13 @@ PERMIT_PACKAGE =    Yes
 WANTLIB += ${COMPILER_LIBCXX} EGL GL Qt5Core Qt5Gui Qt5Network
 WANTLIB += Qt5Qml Qt5QmlModels Qt5Quick Qt5QuickControls2 Qt5Svg
 WANTLIB += Qt5Widgets SDL2 SDL2_ttf X11 avcodec avutil c crypto
-WANTLIB += drm m opus ssl
+WANTLIB += m opus ssl wayland-client
 
 MODULES =              devel/qmake \
                        x11/qt5
 
+MODQMAKE_ARGS +=       CONFIG+='disable-libvdpau disable-libdrm'
+
 RUN_DEPENDS =          x11/gtk+4,-guic \
                        devel/desktop-file-utils
 
@@ -29,6 +30,7 @@ LIB_DEPENDS =         graphics/ffmpeg \
                        devel/sdl2 \
                        devel/sdl2-ttf \
                        audio/opus \
+                       wayland/wayland \
                        x11/qt5/qtsvg \
                        x11/qt5/qtquickcontrols2 \
                        x11/qt5/qtdeclarative
diff --git a/games/moonlight-qt/distinfo b/games/moonlight-qt/distinfo
index 4776071c430..7f082b0fe3a 100644
--- a/games/moonlight-qt/distinfo
+++ b/games/moonlight-qt/distinfo
@@ -1,2 +1,2 @@
-SHA256 (MoonlightSrc-3.1.4.tar.gz) = 
OelZCcNiVktYIukeURIQfB4PEh1xONtiTZury2AewgQ=
-SIZE (MoonlightSrc-3.1.4.tar.gz) = 55034473
+SHA256 (MoonlightSrc-5.0.1.tar.gz) = 
kB+HUIn8WySJy0W1oz8AZJ92hVXnYL3V37qooFyuvJg=
+SIZE (MoonlightSrc-5.0.1.tar.gz) = 79820559
diff --git a/games/moonlight-qt/patches/patch-app_app_pro 
b/games/moonlight-qt/patches/patch-app_app_pro
deleted file mode 100644
index 77a670612ec..00000000000
--- a/games/moonlight-qt/patches/patch-app_app_pro
+++ /dev/null
@@ -1,17 +0,0 @@
-Disable wayland
-
-Index: app/app.pro
---- app/app.pro.orig
-+++ app/app.pro
-@@ -90,11 +90,6 @@ unix:!macx {
-         }
-     }
- 
--    packagesExist(wayland-client) {
--        DEFINES += HAS_WAYLAND
--        PKGCONFIG += wayland-client
--    }
--
-     packagesExist(x11) {
-         DEFINES += HAS_X11
-         PKGCONFIG += x11
diff --git a/games/moonlight-qt/patches/patch-app_backend_nvcomputer_cpp 
b/games/moonlight-qt/patches/patch-app_backend_nvcomputer_cpp
new file mode 100644
index 00000000000..b07a7ff5ee5
--- /dev/null
+++ b/games/moonlight-qt/patches/patch-app_backend_nvcomputer_cpp
@@ -0,0 +1,14 @@
+on my computer, addr.prefixLength() returns -1 although
+my network interface is correctly configured
+
+Index: app/backend/nvcomputer.cpp
+--- app/backend/nvcomputer.cpp.orig
++++ app/backend/nvcomputer.cpp
+@@ -422,7 +422,6 @@ NvComputer::ReachabilityType NvComputer::getActiveAddr
+                     }
+ 
+                     // Didn't meet any of our VPN heuristics. Let's see if 
it's on-link.
+-                    Q_ASSERT(addr.prefixLength() >= 0);
+                     if (addr.prefixLength() >= 0 && 
s.localAddress().isInSubnet(addr.ip(), addr.prefixLength())) {
+                         return ReachabilityType::RI_LAN;
+                     }

Reply via email to