git: 1a71ca9ef7e3 - main - games/moonlight-embedded: Update to 2.5.2

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Thu, 21 Apr 2022 11:57:18 UTC
The branch main has been updated by arrowd:

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

commit 1a71ca9ef7e3fac9b0394d2c99d9a6980a025960
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2022-04-21 05:53:44 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2022-04-21 11:57:11 +0000

    games/moonlight-embedded: Update to 2.5.2
    
    Enable udev, evdev and platform selection features.
---
 games/moonlight-embedded/Makefile                  | 20 ++---
 games/moonlight-embedded/distinfo                  |  8 +-
 .../files/patch-src_input_evdev.c                  | 26 ++++++
 games/moonlight-embedded/files/patch-src_main.c    | 93 +---------------------
 .../moonlight-embedded/files/patch-src_platform.c  |  6 +-
 ...ird__party_moonlight-common-c_src_InputStream.c | 11 ---
 6 files changed, 41 insertions(+), 123 deletions(-)

diff --git a/games/moonlight-embedded/Makefile b/games/moonlight-embedded/Makefile
index 45c8ecaac71c..17b7723059af 100644
--- a/games/moonlight-embedded/Makefile
+++ b/games/moonlight-embedded/Makefile
@@ -1,22 +1,22 @@
 PORTNAME=	moonlight-embedded
-DISTVERSION=	2.4.11
+DISTVERSION=	2.5.2
 CATEGORIES=	games
 MASTER_SITES=	https://github.com/irtimmer/moonlight-embedded/releases/download/v${DISTVERSION}/
 
-PATCH_SITES=	https://github.com/irtimmer/moonlight-embedded/commit/
-PATCHFILES=	5b6639c8a76c4bbb5e0b4bcfe41b8df136608885.patch:-p1
-
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Gamestream client
 
 LICENSE=	GPLv3+
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
 		libcurl.so:ftp/curl \
 		libenet.so:net/enet \
 		libexpat.so:textproc/expat2 \
+		libevdev.so:devel/libevdev \
 		libopus.so:audio/opus \
+		libudev.so:devel/libudev-devd \
 		libuuid.so:misc/e2fsprogs-libuuid
 
 USES=		cmake localbase:ldflags perl5 pkgconfig sdl ssl tar:xz
@@ -24,21 +24,15 @@ USE_LDCONFIG=	yes
 USE_PERL5=	build
 USE_SDL=	sdl2
 
-CFLAGS+=	-DPREFIX="\\\"${PREFIX}\\\""
+NO_WRKSUBDIR=	yes
+CFLAGS+=	-DHAS_SOCKLEN_T=1 -I${LOCALBASE}/include/libepoll-shim/
+LDFLAGS+=	-lepoll-shim
 
 post-patch:
 	@${REINPLACE_CMD} -e '/(ALSA)/d' \
 		-e '/libpulse-simple/d' \
 		-e '/libcec/d' \
-		-e '/libevdev/d' -e 's@./src/input/evdev.c@@' \
-		-e '/libudev/d' -e 's@./src/input/udev.c@@' \
-		-e '/libva/d' \
-		-e '/vdpau/d' \
-		-e '/egl/d' \
-		-e '/glesv2/d' \
-		-e '/x11/d' \
 		${WRKSRC}/CMakeLists.txt
-	@${RM} ${WRKSRC}/src/loop.c
 	@${REINPLACE_CMD} -e '/avahi-client/d' -e 's@SHARED@STATIC@' \
 		-e 's@OpenSSL 1.0.2@OpenSSL@' -e '/^install(/d' \
 		${WRKSRC}/libgamestream/CMakeLists.txt
diff --git a/games/moonlight-embedded/distinfo b/games/moonlight-embedded/distinfo
index 5aab3cccd977..119ac533be76 100644
--- a/games/moonlight-embedded/distinfo
+++ b/games/moonlight-embedded/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1597898806
-SHA256 (moonlight-embedded-2.4.11.tar.xz) = 4494a30925c42c28197e1b0ebabdac0215507f206696aa5b14cb6e85afa4e33c
-SIZE (moonlight-embedded-2.4.11.tar.xz) = 164096
-SHA256 (5b6639c8a76c4bbb5e0b4bcfe41b8df136608885.patch) = e09b68d07acf1790747da9663dd8c0c0484778f948fac2c8e75a8b5a9e49daaa
-SIZE (5b6639c8a76c4bbb5e0b4bcfe41b8df136608885.patch) = 1076
+TIMESTAMP = 1649611079
+SHA256 (moonlight-embedded-2.5.2.tar.xz) = 05b8c4db5ff4e5ea6f6edf2ffc35fef4c989792342549498fd372bc21707f809
+SIZE (moonlight-embedded-2.5.2.tar.xz) = 295184
diff --git a/games/moonlight-embedded/files/patch-src_input_evdev.c b/games/moonlight-embedded/files/patch-src_input_evdev.c
new file mode 100644
index 000000000000..2fbd4ff994f1
--- /dev/null
+++ b/games/moonlight-embedded/files/patch-src_input_evdev.c
@@ -0,0 +1,26 @@
+--- src/input/evdev.c.orig	2021-12-20 00:24:48 UTC
++++ src/input/evdev.c
+@@ -38,10 +38,10 @@
+ #include <limits.h>
+ #include <unistd.h>
+ #include <pthread.h>
+-#include <endian.h>
++#include <sys/endian.h>
+ #include <math.h>
+ 
+-#if __BYTE_ORDER == __LITTLE_ENDIAN
++#if _BYTE_ORDER == _LITTLE_ENDIAN
+ #define int16_to_le(val) val
+ #else
+ #define int16_to_le(val) ((((val) >> 8) & 0x00FF) | (((val) << 8) & 0xFF00))
+@@ -66,8 +66,8 @@ struct input_device {
+   int hats_state[3][2];
+   int fd;
+   char modifiers;
+-  __s32 mouseDeltaX, mouseDeltaY, mouseScroll;
+-  __s32 touchDownX, touchDownY, touchX, touchY;
++  int32_t mouseDeltaX, mouseDeltaY, mouseScroll;
++  int32_t touchDownX, touchDownY, touchX, touchY;
+   struct timeval touchDownTime;
+   struct timeval btnDownTime;
+   short controllerId;
diff --git a/games/moonlight-embedded/files/patch-src_main.c b/games/moonlight-embedded/files/patch-src_main.c
index 6f2ede47e7fb..eb3340ad3460 100644
--- a/games/moonlight-embedded/files/patch-src_main.c
+++ b/games/moonlight-embedded/files/patch-src_main.c
@@ -1,54 +1,6 @@
---- src/main.c.orig	2020-03-09 19:33:27 UTC
+--- src/main.c.orig	2021-12-20 00:24:48 UTC
 +++ src/main.c
-@@ -91,7 +91,6 @@ static void stream(PSERVER_DATA server, PCONFIGURATION
-   }
- 
-   int gamepads = 0;
--  gamepads += evdev_gamepads;
-   #ifdef HAVE_SDL
-   gamepads += sdl_gamepads;
-   #endif
-@@ -121,21 +120,11 @@ static void stream(PSERVER_DATA server, PCONFIGURATION
-     connection_debug = true;
-   }
- 
--  if (IS_EMBEDDED(system))
--    loop_init();
--
-   platform_start(system);
-   LiStartConnection(&server->serverInfo, &config->stream, &connection_callbacks, platform_get_video(system), platform_get_audio(system, config->audio_device), NULL, drFlags, config->audio_device, 0);
- 
--  if (IS_EMBEDDED(system)) {
--    if (!config->viewonly)
--      evdev_start();
--    loop_main();
--    if (!config->viewonly)
--      evdev_stop();
--  }
-   #ifdef HAVE_SDL
--  else if (system == SDL)
-+  if (system == SDL)
-     sdl_loop();
-   #endif
- 
-@@ -188,7 +177,6 @@ static void help() {
-   printf("\t-surround\t\tStream 5.1 surround sound (requires GFE 2.7)\n");
-   printf("\t-keydir <directory>\tLoad encryption keys from directory\n");
-   printf("\t-mapping <file>\t\tUse <file> as gamepad mappings configuration file\n");
--  printf("\t-platform <system>\tSpecify system used for audio, video and input: pi/imx/aml/rk/x11/x11_vdpau/sdl/fake (default auto)\n");
-   printf("\t-unsupported\t\tTry streaming if GFE version or options are unsupported\n");
-   printf("\t-quitappafter\t\tSend quit app request to remote after quitting session\n");
-   printf("\t-viewonly\t\tDisable all input processing (view-only mode)\n");
-@@ -228,8 +216,6 @@ int main(int argc, char* argv[]) {
-       exit(-1);
-     }
- 
--    evdev_create(config.inputs[0], NULL, config.debug_level > 0);
--    evdev_map(config.inputs[0]);
-     exit(0);
-   }
- 
-@@ -240,12 +226,8 @@ int main(int argc, char* argv[]) {
+@@ -258,12 +244,8 @@ int main(int argc, char* argv[]) {
        exit(-1);
      }
      config.address[0] = 0;
@@ -63,44 +15,3 @@
    }
  
    char host_config_file[128];
-@@ -304,39 +286,8 @@ int main(int argc, char* argv[]) {
-       if (config.debug_level > 0)
-         printf("View-only mode enabled, no input will be sent to the host computer\n");
-     } else {
--      if (IS_EMBEDDED(system)) {
--        char* mapping_env = getenv("SDL_GAMECONTROLLERCONFIG");
--        if (config.mapping == NULL && mapping_env == NULL) {
--          fprintf(stderr, "Please specify mapping file as default mapping could not be found.\n");
--          exit(-1);
--        }
--
--        struct mapping* mappings = NULL;
--        if (config.mapping != NULL)
--          mappings = mapping_load(config.mapping, config.debug_level > 0);
--
--        if (mapping_env != NULL) {
--          struct mapping* map = mapping_parse(mapping_env);
--          map->next = mappings;
--          mappings = map;
--        }
--
--        for (int i=0;i<config.inputsCount;i++) {
--          if (config.debug_level > 0)
--            printf("Add input %s...\n", config.inputs[i]);
--
--          evdev_create(config.inputs[i], mappings, config.debug_level > 0);
--        }
--
--        udev_init(!inputAdded, mappings, config.debug_level > 0);
--        evdev_init();
--        rumble_handler = evdev_rumble;
--        #ifdef HAVE_LIBCEC
--        cec_init();
--        #endif /* HAVE_LIBCEC */
--      }
-       #ifdef HAVE_SDL
--      else if (system == SDL) {
-+      if (system == SDL) {
-         if (config.inputsCount > 0) {
-           fprintf(stderr, "You can't select input devices as SDL will automatically use all available controllers\n");
-           exit(-1);
diff --git a/games/moonlight-embedded/files/patch-src_platform.c b/games/moonlight-embedded/files/patch-src_platform.c
index 4f6e6668f23c..d9cddad61b50 100644
--- a/games/moonlight-embedded/files/patch-src_platform.c
+++ b/games/moonlight-embedded/files/patch-src_platform.c
@@ -1,8 +1,8 @@
---- src/platform.c.orig	2018-08-11 15:43:13 UTC
+--- src/platform.c.orig	2021-12-20 00:24:48 UTC
 +++ src/platform.c
-@@ -174,14 +174,6 @@ AUDIO_RENDERER_CALLBACKS* platform_get_audio(enum plat
-     if (audio_device == NULL || strcmp(audio_device, "local") == 0 || strcmp(audio_device, "hdmi") == 0)
+@@ -188,14 +188,6 @@ AUDIO_RENDERER_CALLBACKS* platform_get_audio(enum plat
        return (PAUDIO_RENDERER_CALLBACKS) dlsym(RTLD_DEFAULT, "audio_callbacks_omx");
+     // fall-through
    #endif
 -  default:
 -    #ifdef HAVE_PULSE
diff --git a/games/moonlight-embedded/files/patch-third__party_moonlight-common-c_src_InputStream.c b/games/moonlight-embedded/files/patch-third__party_moonlight-common-c_src_InputStream.c
deleted file mode 100644
index 11a31e91d292..000000000000
--- a/games/moonlight-embedded/files/patch-third__party_moonlight-common-c_src_InputStream.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- third_party/moonlight-common-c/src/InputStream.c.orig	2019-04-29 17:05:00 UTC
-+++ third_party/moonlight-common-c/src/InputStream.c
-@@ -35,7 +35,7 @@ typedef struct _PACKET_HOLDER {
-     LINKED_BLOCKING_QUEUE_ENTRY entry;
- } PACKET_HOLDER, *PPACKET_HOLDER;
- 
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
- #define EVP_CIPHER_CTX_reset(x) EVP_CIPHER_CTX_cleanup(x); EVP_CIPHER_CTX_init(x)
- #endif
-