Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jul 2024 17:38:28 GMT
From:      Gleb Popov <arrowd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 1e807e9107f0 - main - games/moonlight-embedded: Update to 2.7.0
Message-ID:  <202407201738.46KHcS3x015688@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1e807e9107f0315e74d6fc4a3ea6194a3423770e

commit 1e807e9107f0315e74d6fc4a3ea6194a3423770e
Author:     Armin Zhu <lisp_25689@163.com>
AuthorDate: 2024-07-20 12:33:01 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2024-07-20 17:38:21 +0000

    games/moonlight-embedded: Update to 2.7.0
    
    PR:             280114
---
 games/moonlight-embedded/Makefile                  |  35 +++++--
 games/moonlight-embedded/distinfo                  |   6 +-
 .../moonlight-embedded/files/patch-CMakeLists.txt  |  14 ---
 .../files/patch-libgamestream_CMakeLists.txt       |   8 +-
 .../files/patch-libgamestream_client.c             |   7 +-
 .../files/patch-libgamestream_http.c               |  12 ---
 .../files/patch-src_audio_audio.h                  |   9 --
 .../moonlight-embedded/files/patch-src_audio_oss.c | 108 ---------------------
 .../files/patch-src_input_evdev.c                  |  33 ++-----
 games/moonlight-embedded/files/patch-src_main.c    |  11 ++-
 .../moonlight-embedded/files/patch-src_platform.c  |  12 ---
 11 files changed, 48 insertions(+), 207 deletions(-)

diff --git a/games/moonlight-embedded/Makefile b/games/moonlight-embedded/Makefile
index 7fd965f80162..b29c299b8f13 100644
--- a/games/moonlight-embedded/Makefile
+++ b/games/moonlight-embedded/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	moonlight-embedded
-DISTVERSION=	2.6.2
+DISTVERSION=	2.7.0
 CATEGORIES=	games
 MASTER_SITES=	https://github.com/moonlight-stream/moonlight-embedded/releases/download/v${DISTVERSION}/
 
@@ -19,28 +19,45 @@ LIB_DEPENDS=	libavahi-client.so:net/avahi-app \
 		libexpat.so:textproc/expat2 \
 		libopus.so:audio/opus \
 		libudev.so:devel/libudev-devd \
-		libuuid.so:misc/e2fsprogs-libuuid \
-		libvdpau.so:multimedia/libvdpau \
-		libva.so:multimedia/libva
+		libuuid.so:misc/e2fsprogs-libuuid
 
-USES=		cmake gl localbase:ldflags perl5 pkgconfig sdl ssl tar:xz xorg
+USES=		cmake localbase:ldflags perl5 pkgconfig sdl ssl tar:xz
 USE_LDCONFIG=	yes
-USE_GL=		egl glesv2
 USE_PERL5=	build
 USE_SDL=	sdl2
-USE_XORG=	x11
 
 NO_WRKSUBDIR=	yes
 CFLAGS+=	-DHAS_SOCKLEN_T=1 -I${LOCALBASE}/include/libepoll-shim/
 LDFLAGS+=	-lepoll-shim
-CMAKE_OFF=	ENABLE_CEC ENABLE_PULSE
-CMAKE_ON=	ENET_NO_INSTALL
+CONFLICTS_INSTALL=	moonlight-embedded-devel
 
 PLIST_FILES=	bin/moonlight \
 		"@sample etc/moonlight.conf.sample" \
 		share/man/man1/moonlight.1.gz \
 		share/moonlight/gamecontrollerdb.txt
 
+OPTIONS_DEFAULT=	OSS X11
+OSS_DESC=	Open Sound System support for embedded(not SDL) platform
+PULSE_DESC=	PulseAudio sound server support for embedded(not SDL) platform
+CEC_DESC=	Enable HDMI-CEC(TV controller) feature by using libcec.so
+X11_DESC=	Enable x11 and x11_vaapi platform using xorg
+OPTIONS_SINGLE=	SOUND
+OPTIONS_SINGLE_SOUND=	OSS PULSE
+OPTIONS_GROUP=	DISPLAY OTHERS
+OPTIONS_GROUP_OTHERS=	CEC
+OPTIONS_GROUP_DISPLAY=	X11
+OSS_CMAKE_ON=	-DENABLE_PULSE:BOOL=false
+PULSE_CMAKE_BOOL=	ENABLE_PULSE
+PULSE_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
+CEC_CMAKE_BOOL=	ENABLE_CEC
+CEC_LIB_DEPENDS=	libcec.so:multimedia/libcec \
+			libp8-platform.so:devel/p8-platform
+X11_USES=	xorg gl
+X11_USE=	xorg=x11 gl=egl,glesv2
+X11_CMAKE_BOOL=	ENABLE_X11
+X11_LIB_DEPENDS=	libvdpau.so:multimedia/libvdpau \
+			libva.so:multimedia/libva
+
 post-extract:
 	@${REINPLACE_CMD} -e 's|/etc/moonlight/|${PREFIX}/etc/moonlight/|g' \
 		${WRKSRC}/docs/README.pod
diff --git a/games/moonlight-embedded/distinfo b/games/moonlight-embedded/distinfo
index fbade7d0fe56..368b842ee506 100644
--- a/games/moonlight-embedded/distinfo
+++ b/games/moonlight-embedded/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1701007066
-SHA256 (moonlight-embedded-2.6.2.tar.xz) = 8bcc69b403a628efaf8686d40c0d1428b46defe4c65b06ff6ccc3fe32f0b2356
-SIZE (moonlight-embedded-2.6.2.tar.xz) = 328660
+TIMESTAMP = 1708491885
+SHA256 (moonlight-embedded-2.7.0.tar.xz) = 6527718e678dafd6e1e1876bbc6949538b38986d54ebda0b7fdc3b3f4af4f2dd
+SIZE (moonlight-embedded-2.7.0.tar.xz) = 335984
diff --git a/games/moonlight-embedded/files/patch-CMakeLists.txt b/games/moonlight-embedded/files/patch-CMakeLists.txt
deleted file mode 100644
index fef9d3015b15..000000000000
--- a/games/moonlight-embedded/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
---- CMakeLists.txt.orig	2023-11-03 06:08:34 UTC
-+++ CMakeLists.txt
-@@ -87,6 +87,11 @@ add_executable(moonlight ${SRC_LIST})
- target_link_libraries(moonlight m)
- target_link_libraries(moonlight gamestream)
- 
-+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-+  set(ALSA_FOUND FALSE)
-+  target_sources(moonlight PRIVATE ./src/audio/oss.c)
-+endif()
-+
- if (CEC_FOUND)
-   list(APPEND MOONLIGHT_DEFINITIONS HAVE_LIBCEC)
-   list(APPEND MOONLIGHT_OPTIONS CEC)
diff --git a/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt b/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt
index a758f6c03392..609280935a23 100644
--- a/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt
+++ b/games/moonlight-embedded/files/patch-libgamestream_CMakeLists.txt
@@ -1,6 +1,6 @@
---- libgamestream/CMakeLists.txt.orig	2023-11-03 06:08:34 UTC
+--- libgamestream/CMakeLists.txt.orig	2024-02-20 04:01:31 UTC
 +++ libgamestream/CMakeLists.txt
-@@ -3,7 +3,7 @@ set(SO_VERSION 4)
+@@ -3,7 +3,7 @@ find_package(CURL REQUIRED)
  find_package(LibUUID REQUIRED)
  find_package(Threads REQUIRED)
  find_package(CURL REQUIRED)
@@ -21,8 +21,8 @@
  target_link_libraries(gamestream moonlight-common)
  
  set_target_properties(gamestream PROPERTIES SOVERSION ${SO_VERSION} VERSION ${PROJECT_VERSION})
-@@ -28,5 +28,3 @@ target_include_directories(moonlight-common PRIVATE ..
- target_link_libraries(gamestream ${CURL_LIBRARIES} ${OPENSSL_LIBRARIES} ${EXPAT_LIBRARIES} ${AVAHI_LIBRARIES} ${LIBUUID_LIBRARIES})
+@@ -28,5 +28,3 @@ target_link_libraries(gamestream ${CMAKE_THREAD_LIBS_I
+ target_link_libraries(gamestream ${CURL_LIBRARIES} ${OPENSSL_LIBRARIES} ${EXPAT_LIBRARIES} ${AVAHI_LIBRARIES} ${LibUUID_LIBRARIES})
  
  target_link_libraries(gamestream ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
 -
diff --git a/games/moonlight-embedded/files/patch-libgamestream_client.c b/games/moonlight-embedded/files/patch-libgamestream_client.c
index 1efe5f0f8e14..175d9029755d 100644
--- a/games/moonlight-embedded/files/patch-libgamestream_client.c
+++ b/games/moonlight-embedded/files/patch-libgamestream_client.c
@@ -1,10 +1,9 @@
---- libgamestream/client.c.orig	2023-11-03 06:08:34 UTC
+--- libgamestream/client.c.orig	2024-02-20 04:01:31 UTC
 +++ libgamestream/client.c
-@@ -537,7 +537,16 @@ int gs_pair(PSERVER_DATA server, char* pin) {
+@@ -539,7 +539,15 @@ int gs_pair(PSERVER_DATA server, char* pin) {
    RAND_bytes(client_secret_data, sizeof(client_secret_data));
  
    const ASN1_BIT_STRING *asnSignature;
-+
 +#ifdef __FreeBSD__
 + #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
    X509_get0_signature(&asnSignature, NULL, cert);
@@ -15,5 +14,5 @@
 +  X509_get0_signature(&asnSignature, NULL, cert);
 +#endif
  
-   char challenge_response[16 + SIGNATURE_LEN + sizeof(client_secret_data)];
+   challenge_response = malloc(16 + asnSignature->length + sizeof(client_secret_data));
    char challenge_response_hash[32];
diff --git a/games/moonlight-embedded/files/patch-libgamestream_http.c b/games/moonlight-embedded/files/patch-libgamestream_http.c
deleted file mode 100644
index 112582df9d7c..000000000000
--- a/games/moonlight-embedded/files/patch-libgamestream_http.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- libgamestream/http.c.orig	2023-11-03 06:08:34 UTC
-+++ libgamestream/http.c
-@@ -73,6 +73,9 @@ int http_init(const char* keyDirectory, int logLevel) 
- int http_request(char* url, PHTTP_DATA data) {
-   curl_easy_setopt(curl, CURLOPT_WRITEDATA, data);
-   curl_easy_setopt(curl, CURLOPT_URL, url);
-+#ifdef __FreeBSD__
-+  curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 1);
-+#endif
- 
-   if (debug)
-     printf("Request %s\n", url);
diff --git a/games/moonlight-embedded/files/patch-src_audio_audio.h b/games/moonlight-embedded/files/patch-src_audio_audio.h
deleted file mode 100644
index 66625239ed63..000000000000
--- a/games/moonlight-embedded/files/patch-src_audio_audio.h
+++ /dev/null
@@ -1,9 +0,0 @@
---- src/audio/audio.h.orig	2023-11-03 06:08:34 UTC
-+++ src/audio/audio.h
-@@ -31,3 +31,6 @@ extern AUDIO_RENDERER_CALLBACKS audio_callbacks_sdl;
- extern AUDIO_RENDERER_CALLBACKS audio_callbacks_pulse;
- bool audio_pulse_init(char* audio_device);
- #endif
-+#ifdef __FreeBSD__
-+extern AUDIO_RENDERER_CALLBACKS audio_callbacks_oss;
-+#endif
diff --git a/games/moonlight-embedded/files/patch-src_audio_oss.c b/games/moonlight-embedded/files/patch-src_audio_oss.c
deleted file mode 100644
index ddd61c493d8a..000000000000
--- a/games/moonlight-embedded/files/patch-src_audio_oss.c
+++ /dev/null
@@ -1,108 +0,0 @@
---- src/audio/oss.c.orig	2024-01-01 05:31:28 UTC
-+++ src/audio/oss.c
-@@ -0,0 +1,105 @@
-+/*
-+ * This file is part of Moonlight Embedded.
-+ *
-+ * Copyright (C) 2015-2017 Iwan Timmer
-+ *
-+ * Moonlight is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 3 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * Moonlight is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with Moonlight; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifdef __FreeBSD__
-+#include <sys/soundcard.h>
-+#include <sys/ioctl.h>
-+#include "audio.h"
-+
-+#include <opus_multistream.h>
-+
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+
-+static OpusMSDecoder* decoder;
-+static short* pcmBuffer;
-+static int samplesPerFrame;
-+static int channelCount;
-+static int fd = -1;
-+
-+static int oss_renderer_init(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig, void* context, int arFlags) {
-+  int rc;
-+  decoder = opus_multistream_decoder_create(opusConfig->sampleRate, opusConfig->channelCount, opusConfig->streams, opusConfig->coupledStreams, opusConfig->mapping, &rc);
-+
-+  channelCount = opusConfig->channelCount;
-+  samplesPerFrame = opusConfig->samplesPerFrame;
-+  pcmBuffer = malloc(sizeof(short) * channelCount * samplesPerFrame);
-+  if (pcmBuffer == NULL)
-+    return -1;
-+
-+  const char* oss_name = "/dev/dsp";
-+  fd = open(oss_name, O_WRONLY);
-+  if (fd == -1) {
-+    printf("Open audio device /dev/dsp failed! error %d\n", errno);
-+    return -1;
-+  }
-+  // buffer size for fragment ,selector 12 is 4096;11 is 2048;10 is 1024; 13is 8192
-+  int frag = 12;
-+  if (ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &frag) == -1)
-+    printf("Set fragment for /dev/dsp failed.");
-+
-+  int format = AFMT_S16_LE;
-+  int channels = opusConfig->channelCount;
-+  int rate = opusConfig->sampleRate;
-+  if (ioctl(fd, SNDCTL_DSP_SETFMT, &format) == -1)
-+    printf("Set format for /dev/dsp failed.");
-+  if (ioctl(fd, SNDCTL_DSP_CHANNELS, &channels) == -1)
-+    printf("Set channels for /dev/dsp failed.");
-+  if (ioctl(fd, SNDCTL_DSP_SPEED, &rate) == -1)
-+    printf("Set sample rate for /dev/dsp failed.");
-+
-+  return 0;
-+}
-+
-+static void oss_renderer_cleanup() {
-+  if (decoder != NULL) {
-+    opus_multistream_decoder_destroy(decoder);
-+    decoder = NULL;
-+  }
-+
-+  if (pcmBuffer != NULL) {
-+    free(pcmBuffer);
-+    pcmBuffer = NULL;
-+  }
-+
-+  if (fd != -1) {
-+    close(fd);
-+    fd = -1;
-+  }
-+}
-+
-+static void oss_renderer_decode_and_play_sample(char* data, int length) {
-+  int decodeLen = opus_multistream_decode(decoder, data, length, pcmBuffer, samplesPerFrame, 0);
-+  if (decodeLen > 0) {
-+    write(fd, pcmBuffer, decodeLen * channelCount * sizeof(short));
-+  } else if (decodeLen < 0) {
-+    printf("Opus error from decode: %d\n", decodeLen);
-+  }
-+}
-+
-+AUDIO_RENDERER_CALLBACKS audio_callbacks_oss = {
-+  .init = oss_renderer_init,
-+  .cleanup = oss_renderer_cleanup,
-+  .decodeAndPlaySample = oss_renderer_decode_and_play_sample,
-+  .capabilities = CAPABILITY_DIRECT_SUBMIT | CAPABILITY_SUPPORTS_ARBITRARY_AUDIO_DURATION,
-+};
-+#endif
diff --git a/games/moonlight-embedded/files/patch-src_input_evdev.c b/games/moonlight-embedded/files/patch-src_input_evdev.c
index f2812ca25ca6..c7f9be90ab9a 100644
--- a/games/moonlight-embedded/files/patch-src_input_evdev.c
+++ b/games/moonlight-embedded/files/patch-src_input_evdev.c
@@ -1,14 +1,7 @@
---- src/input/evdev.c.orig	2023-11-03 06:08:34 UTC
+--- src/input/evdev.c.orig	2024-02-20 04:01:31 UTC
 +++ src/input/evdev.c
-@@ -38,9 +38,15 @@
- #include <limits.h>
- #include <unistd.h>
- #include <pthread.h>
-+#ifdef __linux__
- #include <endian.h>
-+#else
-+#include <sys/endian.h>
-+#endif
+@@ -45,6 +45,8 @@
+ #endif
  #include <math.h>
  
 +static bool isUseKbdmux = false;
@@ -16,21 +9,7 @@
  #if __BYTE_ORDER == __LITTLE_ENDIAN
  #define int16_to_le(val) val
  #else
-@@ -66,8 +72,13 @@ struct input_device {
-   int hats_state[3][2];
-   int fd;
-   char modifiers;
-+  #ifdef __linux__
-   __s32 mouseDeltaX, mouseDeltaY, mouseVScroll, mouseHScroll;
-   __s32 touchDownX, touchDownY, touchX, touchY;
-+  #else
-+  int32_t mouseDeltaX, mouseDeltaY, mouseVScroll, mouseHScroll;
-+  int32_t touchDownX, touchDownY, touchX, touchY;
-+  #endif
-   struct timeval touchDownTime;
-   struct timeval btnDownTime;
-   short controllerId;
-@@ -749,7 +760,7 @@ static int evdev_handle(int fd) {
+@@ -758,7 +760,7 @@ static int evdev_handle(int fd) {
        struct input_event ev;
        while ((rc = libevdev_next_event(devices[i].dev, LIBEVDEV_READ_FLAG_NORMAL, &ev)) >= 0) {
          if (rc == LIBEVDEV_READ_STATUS_SYNC)
@@ -39,7 +18,7 @@
          else if (rc == LIBEVDEV_READ_STATUS_SUCCESS) {
            if (!handler(&ev, &devices[i]))
              return LOOP_RETURN;
-@@ -766,6 +777,39 @@ static int evdev_handle(int fd) {
+@@ -775,6 +777,39 @@ static int evdev_handle(int fd) {
    return LOOP_OK;
  }
  
@@ -79,7 +58,7 @@
  void evdev_create(const char* device, struct mapping* mappings, bool verbose, int rotate) {
    int fd = open(device, O_RDWR|O_NONBLOCK);
    if (fd <= 0) {
-@@ -840,6 +884,33 @@ void evdev_create(const char* device, struct mapping* 
+@@ -851,6 +886,33 @@ void evdev_create(const char* device, struct mapping* 
       libevdev_has_event_code(evdev, EV_ABS, ABS_WHEEL) ||
       libevdev_has_event_code(evdev, EV_ABS, ABS_GAS) ||
       libevdev_has_event_code(evdev, EV_ABS, ABS_BRAKE));
diff --git a/games/moonlight-embedded/files/patch-src_main.c b/games/moonlight-embedded/files/patch-src_main.c
index 827f3a3ade46..478f6ba2ccfa 100644
--- a/games/moonlight-embedded/files/patch-src_main.c
+++ b/games/moonlight-embedded/files/patch-src_main.c
@@ -1,4 +1,4 @@
---- src/main.c.orig	2023-11-03 06:08:34 UTC
+--- src/main.c.orig	2024-02-20 04:01:31 UTC
 +++ src/main.c
 @@ -42,6 +42,7 @@
  #include <client.h>
@@ -54,16 +54,17 @@
  
      #ifdef HAVE_SDL
      if (system == SDL)
-@@ -362,6 +363,8 @@ int main(int argc, char* argv[]) {
+@@ -362,6 +363,9 @@ int main(int argc, char* argv[]) {
            mappings = map;
          }
  
 +        // test is use kbdmux driver
-+        is_use_kbdmux();
++        if (config.inputsCount <= 0)
++          is_use_kbdmux();
          for (int i=0;i<config.inputsCount;i++) {
            if (config.debug_level > 0)
              printf("Adding input device %s...\n", config.inputs[i]);
-@@ -398,7 +401,8 @@ int main(int argc, char* argv[]) {
+@@ -398,7 +402,8 @@ int main(int argc, char* argv[]) {
      if (config.pin > 0 && config.pin <= 9999) {
        sprintf(pin, "%04d", config.pin);
      } else {
@@ -73,7 +74,7 @@
      }
      printf("Please enter the following PIN on the target PC: %s\n", pin);
      fflush(stdout);
-@@ -406,6 +410,7 @@ int main(int argc, char* argv[]) {
+@@ -406,6 +411,7 @@ int main(int argc, char* argv[]) {
        fprintf(stderr, "Failed to pair to server: %s\n", gs_error);
      } else {
        printf("Succesfully paired\n");
diff --git a/games/moonlight-embedded/files/patch-src_platform.c b/games/moonlight-embedded/files/patch-src_platform.c
deleted file mode 100644
index 4fe2435269b2..000000000000
--- a/games/moonlight-embedded/files/patch-src_platform.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/platform.c.orig	2023-11-03 06:08:34 UTC
-+++ src/platform.c
-@@ -202,6 +202,9 @@ AUDIO_RENDERER_CALLBACKS* platform_get_audio(enum plat
-     #ifdef HAVE_ALSA
-     return &audio_callbacks_alsa;
-     #endif
-+    #ifdef __FreeBSD__
-+    return &audio_callbacks_oss;
-+    #endif
-   }
-   return NULL;
- }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202407201738.46KHcS3x015688>