lisp_25689_163.com updated this revision to Diff 129240.
lisp_25689_163.com added a comment.
Modify the makefile based on arrowd's comments
REPOSITORY
R11 FreeBSD ports repository
CHANGES SINCE LAST UPDATE
https://reviews.freebsd.org/D42323?vs=129219&id=129240
CHANGES SINCE LAST ACTION
https://reviews.freebsd.org/D42323/new/
REVISION DETAIL
https://reviews.freebsd.org/D42323
AFFECTED FILES
games/moonlight-qt/Makefile
games/moonlight-qt/distinfo
games/moonlight-qt/files/patch-app_streaming_video_ffmpeg-renderers_drm.cpp
games/moonlight-qt/pkg-descr
games/moonlight-qt/pkg-plist
EMAIL PREFERENCES
https://reviews.freebsd.org/settings/panel/emailpreferences/
To: lisp_25689_163.com, #games, fuz
Cc: arrowd, eduardo, freebsd-ports-list
diff --git a/games/moonlight-qt/pkg-plist b/games/moonlight-qt/pkg-plist
new file mode 100644
--- /dev/null
+++ b/games/moonlight-qt/pkg-plist
@@ -0,0 +1,4 @@
+bin/moonlight-qt
+share/applications/com.moonlight_stream.Moonlight.desktop
+share/metainfo/com.moonlight_stream.Moonlight.appdata.xml
+share/icons/hicolor/scalable/apps/moonlight.svg
diff --git a/games/moonlight-qt/pkg-descr b/games/moonlight-qt/pkg-descr
new file mode 100644
--- /dev/null
+++ b/games/moonlight-qt/pkg-descr
@@ -0,0 +1,5 @@
+Moonlight PC is an open source PC client for NVIDIA GameStream
+and Sunshine.
+
+Moonlight PC allows you to stream your full collection of games
+from your Windows/Linux desktop to your FreeBSD system.
diff --git a/games/moonlight-qt/files/patch-app_streaming_video_ffmpeg-renderers_drm.cpp b/games/moonlight-qt/files/patch-app_streaming_video_ffmpeg-renderers_drm.cpp
new file mode 100644
--- /dev/null
+++ b/games/moonlight-qt/files/patch-app_streaming_video_ffmpeg-renderers_drm.cpp
@@ -0,0 +1,27 @@
+--- app/streaming/video/ffmpeg-renderers/drm.cpp.orig 2023-10-18 05:45:10 UTC
++++ app/streaming/video/ffmpeg-renderers/drm.cpp
+@@ -10,7 +10,24 @@ extern "C" {
+ }
+
+ #include <libdrm/drm_fourcc.h>
++#ifdef __linux__
+ #include <linux/dma-buf.h>
++#else //bundle on BSDs
++typedef uint64_t __u64;
++// From https://github.com/evadot/drm-subtree or https://reviews.freebsd.org/D23085
++struct dma_buf_sync {
++ __u64 flags;
++};
++#define DMA_BUF_SYNC_READ (1 << 0)
++#define DMA_BUF_SYNC_WRITE (2 << 0)
++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
++#define DMA_BUF_SYNC_START (0 << 2)
++#define DMA_BUF_SYNC_END (1 << 2)
++#define DMA_BUF_SYNC_VALID_FLAGS_MASK \
++ (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END)
++#define DMA_BUF_BASE 'b'
++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
++#endif
+ #include <sys/ioctl.h>
+
+ // Special Rockchip type
diff --git a/games/moonlight-qt/distinfo b/games/moonlight-qt/distinfo
new file mode 100644
--- /dev/null
+++ b/games/moonlight-qt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1697634805
+SHA256 (MoonlightSrc-5.0.0.tar.gz) = bb376640421cd5386a64102cbb9d78f5be87e8f796b78bf517dca2c8c37acfd4
+SIZE (MoonlightSrc-5.0.0.tar.gz) = 79821343
diff --git a/games/moonlight-qt/Makefile b/games/moonlight-qt/Makefile
new file mode 100644
--- /dev/null
+++ b/games/moonlight-qt/Makefile
@@ -0,0 +1,39 @@
+PORTNAME= moonlight
+PKGNAMESUFFIX= -qt
+DISTVERSION= 5.0.0
+CATEGORIES= games
+DISTNAME= MoonlightSrc-${DISTVERSIONFULL}
+MASTER_SITES= https://github.com/moonlight-stream/moonlight-qt/releases/download/v${DISTVERSION}/
+
+MAINTAINER= [email protected]
+COMMENT= Gamestream client
+WWW= https://github.com/moonlight-stream/moonlight-qt
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
+ libopus.so:audio/opus \
+ libva.so:multimedia/libva \
+ libdrm.so:graphics/libdrm \
+ libvdpau.so:multimedia/libvdpau \
+ libwayland-client.so:graphics/wayland
+
+USES= gl localbase:ldflags pkgconfig qmake:outsource qt:5 sdl ssl xorg
+USE_QT= core declarative gui network quickcontrols2 svg widgets buildtools:build
+USE_GL= egl
+USE_SDL= sdl2 ttf2
+USE_XORG= x11
+
+NO_WRKSUBDIR= yes
+
+post-patch:
+ @${REINPLACE_CMD} -e 's@^ TARGET = moonlight.*@ TARGET = ${PORTNAME}${PKGNAMESUFFIX}@' \
+ ${WRKSRC}/app/app.pro
+ @${REINPLACE_CMD} -e 's@Exec=moonlight.*@Exec=${PORTNAME}${PKGNAMESUFFIX}@' \
+ ${WRKSRC}/app/deploy/linux/com.moonlight_stream.Moonlight.desktop
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}
+
+.include <bsd.port.mk>