lisp_25689_163.com created this revision. lisp_25689_163.com added reviewers: games, fuz. lisp_25689_163.com requested review of this revision.
REVISION SUMMARY Add moonlight-qt to ports tree. from: https://github.com/moonlight-stream/moonlight-qt/releases/download/v5.0.0/ LICENSE is GPLv3+ Moonlight PC is an open source PC client for NVIDIA GameStream and Sunshine. In other words, It's streaming software.Can connect to Windows/Linux with low latency. Similar to moonlight embedded, but specifically created for the desktop environment . REPOSITORY R11 FreeBSD ports repository 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: 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,41 @@ +PORTNAME= moonlight +PKGNAMESUFFIX= -qt +DISTVERSION= 5.0.0 +CATEGORIES= games +DISTNAME= MoonlightSrc-${DISTVERSIONFULL} +EXTRACT_SUFX= .tar.gz +MASTER_SITES= https://github.com/moonlight-stream/moonlight-qt/releases/download/v${DISTVERSION}/ + +MAINTAINER= lisp_25...@163.com +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= qmake:outsource +USES+= qt:5 gl localbase:ldflags pkgconfig ssl xorg sdl +USE_QT= core gui network quickcontrols2 svg declarative 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>