diff options
Diffstat (limited to 'net-misc/sunshine/files/sunshine-0.21.0-system-deps.patch')
-rw-r--r-- | net-misc/sunshine/files/sunshine-0.21.0-system-deps.patch | 341 |
1 files changed, 341 insertions, 0 deletions
diff --git a/net-misc/sunshine/files/sunshine-0.21.0-system-deps.patch b/net-misc/sunshine/files/sunshine-0.21.0-system-deps.patch new file mode 100644 index 000000000000..bfb5d41aba15 --- /dev/null +++ b/net-misc/sunshine/files/sunshine-0.21.0-system-deps.patch @@ -0,0 +1,341 @@ +From 9ac47f2b21391758065cc32df2d54e59a56425b8 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 01:04:04 +0000 +Subject: [PATCH 1/4] Optionally allow the system installation of MiniUPnP to + be used (#1959) + +--- + cmake/compile_definitions/common.cmake | 2 +- + cmake/dependencies/common.cmake | 38 ++++++++++++++++++-------- + cmake/prep/options.cmake | 2 ++ + 3 files changed, 29 insertions(+), 13 deletions(-) + +diff --git a/cmake/compile_definitions/common.cmake b/cmake/compile_definitions/common.cmake +index f10b200..c096920 100644 +--- a/cmake/compile_definitions/common.cmake ++++ b/cmake/compile_definitions/common.cmake +@@ -118,7 +118,7 @@ else() + endif() + + list(APPEND SUNSHINE_EXTERNAL_LIBRARIES +- libminiupnpc-static ++ ${MINIUPNP_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + enet + opus +diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake +index 9bc7c56..b26b12a 100644 +--- a/cmake/dependencies/common.cmake ++++ b/cmake/dependencies/common.cmake +@@ -9,13 +9,33 @@ add_subdirectory(third-party/moonlight-common-c/enet) + # web server + add_subdirectory(third-party/Simple-Web-Server) + ++# common dependencies ++find_package(OpenSSL REQUIRED) ++find_package(PkgConfig REQUIRED) ++find_package(Threads REQUIRED) ++pkg_check_modules(CURL REQUIRED libcurl) ++ + # miniupnp +-set(UPNPC_BUILD_SHARED OFF CACHE BOOL "No shared libraries") +-set(UPNPC_BUILD_TESTS OFF CACHE BOOL "Don't build tests for miniupnpc") +-set(UPNPC_BUILD_SAMPLE OFF CACHE BOOL "Don't build samples for miniupnpc") +-set(UPNPC_NO_INSTALL ON CACHE BOOL "Don't install any libraries build for miniupnpc") +-add_subdirectory(third-party/miniupnp/miniupnpc) +-include_directories(SYSTEM third-party/miniupnp/miniupnpc/include) ++if(SUNSHINE_SYSTEM_MINIUPNP) ++ pkg_check_modules(MINIUPNP miniupnpc REQUIRED) ++ ++ # Use includedir pkg-config variable rather than MINIUPNP_INCLUDE_DIRS ++ # defined above. The latter may be blank, as pkg-config sometimes omits -I ++ # flags for directories that are searched by default (e.g. /usr/include), ++ # but we need a value to append /miniupnpc to. Normally source files would ++ # prefix their #include directives with miniupnpc/, but this does not align ++ # with the directory structure of the git submodule used below. ++ pkg_get_variable(MINIUPNP_INCLUDE_DIR miniupnpc includedir) ++ include_directories(SYSTEM ${MINIUPNP_INCLUDE_DIR}/miniupnpc) ++else() ++ set(UPNPC_BUILD_SHARED OFF CACHE BOOL "No shared libraries") ++ set(UPNPC_BUILD_TESTS OFF CACHE BOOL "Don't build tests for miniupnpc") ++ set(UPNPC_BUILD_SAMPLE OFF CACHE BOOL "Don't build samples for miniupnpc") ++ set(UPNPC_NO_INSTALL ON CACHE BOOL "Don't install any libraries build for miniupnpc") ++ set(MINIUPNP_LIBRARIES libminiupnpc-static) ++ add_subdirectory(third-party/miniupnp/miniupnpc) ++ include_directories(SYSTEM third-party/miniupnp/miniupnpc/include) ++endif() + + # ffmpeg pre-compiled binaries + if(WIN32) +@@ -66,12 +86,6 @@ set(FFMPEG_LIBRARIES + ${HDR10_PLUS_LIBRARY} + ${FFMPEG_PLATFORM_LIBRARIES}) + +-# common dependencies +-find_package(OpenSSL REQUIRED) +-find_package(PkgConfig REQUIRED) +-find_package(Threads REQUIRED) +-pkg_check_modules(CURL REQUIRED libcurl) +- + # platform specific dependencies + if(WIN32) + include(${CMAKE_MODULE_PATH}/dependencies/windows.cmake) +diff --git a/cmake/prep/options.cmake b/cmake/prep/options.cmake +index 1a216d2..cb26461 100644 +--- a/cmake/prep/options.cmake ++++ b/cmake/prep/options.cmake +@@ -4,6 +4,8 @@ option(SUNSHINE_CONFIGURE_ONLY "Configure special files only, then exit." OFF) + option(SUNSHINE_ENABLE_TRAY "Enable system tray icon. This option will be ignored on macOS." ON) + option(SUNSHINE_REQUIRE_TRAY "Require system tray icon. Fail the build if tray requirements are not met." ON) + ++option(SUNSHINE_SYSTEM_MINIUPNP "Use system installation of MiniUPnP rather than the submodule." OFF) ++ + if(APPLE) + option(SUNSHINE_CONFIGURE_PORTFILE + "Configure macOS Portfile. Recommended to use with SUNSHINE_CONFIGURE_ONLY" OFF) +-- +2.43.0 + + +From 2056874748872e820c343556fc6ede4449e376f8 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 16:49:00 +0000 +Subject: [PATCH 2/4] Optionally allow the system installation of + wayland-protocols to be used (#1966) + +--- + cmake/compile_definitions/linux.cmake | 11 +++++++++-- + cmake/macros/linux.cmake | 8 ++++---- + cmake/prep/options.cmake | 1 + + 3 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake +index f28152e..a13a823 100644 +--- a/cmake/compile_definitions/linux.cmake ++++ b/cmake/compile_definitions/linux.cmake +@@ -127,8 +127,15 @@ endif() + if(WAYLAND_FOUND) + add_compile_definitions(SUNSHINE_BUILD_WAYLAND) + +- GEN_WAYLAND("wayland-protocols" "unstable/xdg-output" xdg-output-unstable-v1) +- GEN_WAYLAND("wlr-protocols" "unstable" wlr-export-dmabuf-unstable-v1) ++ if(NOT SUNSHINE_SYSTEM_WAYLAND_PROTOCOLS) ++ set(WAYLAND_PROTOCOLS_DIR "${CMAKE_SOURCE_DIR}/third-party/wayland-protocols") ++ else() ++ pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) ++ pkg_check_modules(WAYLAND_PROTOCOLS wayland-protocols REQUIRED) ++ endif() ++ ++ GEN_WAYLAND("${WAYLAND_PROTOCOLS_DIR}" "unstable/xdg-output" xdg-output-unstable-v1) ++ GEN_WAYLAND("${CMAKE_SOURCE_DIR}/third-party/wlr-protocols" "unstable" wlr-export-dmabuf-unstable-v1) + + include_directories( + SYSTEM +diff --git a/cmake/macros/linux.cmake b/cmake/macros/linux.cmake +index d84d045..0bb5e04 100644 +--- a/cmake/macros/linux.cmake ++++ b/cmake/macros/linux.cmake +@@ -5,17 +5,17 @@ macro(GEN_WAYLAND wayland_directory subdirectory filename) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/generated-src) + + message("wayland-scanner private-code \ +-${CMAKE_SOURCE_DIR}/third-party/${wayland_directory}/${subdirectory}/${filename}.xml \ ++${wayland_directory}/${subdirectory}/${filename}.xml \ + ${CMAKE_BINARY_DIR}/generated-src/${filename}.c") + message("wayland-scanner client-header \ +-${CMAKE_SOURCE_DIR}/third-party/${wayland_directory}/${subdirectory}/${filename}.xml \ ++${wayland_directory}/${subdirectory}/${filename}.xml \ + ${CMAKE_BINARY_DIR}/generated-src/${filename}.h") + execute_process( + COMMAND wayland-scanner private-code +- ${CMAKE_SOURCE_DIR}/third-party/${wayland_directory}/${subdirectory}/${filename}.xml ++ ${wayland_directory}/${subdirectory}/${filename}.xml + ${CMAKE_BINARY_DIR}/generated-src/${filename}.c + COMMAND wayland-scanner client-header +- ${CMAKE_SOURCE_DIR}/third-party/${wayland_directory}/${subdirectory}/${filename}.xml ++ ${wayland_directory}/${subdirectory}/${filename}.xml + ${CMAKE_BINARY_DIR}/generated-src/${filename}.h + + RESULT_VARIABLE EXIT_INT +diff --git a/cmake/prep/options.cmake b/cmake/prep/options.cmake +index cb26461..dc6b5f6 100644 +--- a/cmake/prep/options.cmake ++++ b/cmake/prep/options.cmake +@@ -5,6 +5,7 @@ option(SUNSHINE_ENABLE_TRAY "Enable system tray icon. This option will be ignore + option(SUNSHINE_REQUIRE_TRAY "Require system tray icon. Fail the build if tray requirements are not met." ON) + + option(SUNSHINE_SYSTEM_MINIUPNP "Use system installation of MiniUPnP rather than the submodule." OFF) ++option(SUNSHINE_SYSTEM_WAYLAND_PROTOCOLS "Use system installation of wayland-protocols rather than the submodule." OFF) + + if(APPLE) + option(SUNSHINE_CONFIGURE_PORTFILE +-- +2.43.0 + + +From a0a6d322c292efa67a59df7b4c71beeb17b322ce Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 11:17:08 +0000 +Subject: [PATCH 3/4] Allow a custom FFmpeg build to be provided using CMake + options + +--- + cmake/dependencies/common.cmake | 96 ++++++++++++++++++--------------- + 1 file changed, 53 insertions(+), 43 deletions(-) + +diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake +index b26b12a..30069d3 100644 +--- a/cmake/dependencies/common.cmake ++++ b/cmake/dependencies/common.cmake +@@ -38,53 +38,63 @@ else() + endif() + + # ffmpeg pre-compiled binaries +-if(WIN32) +- if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) +- endif() +- set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-windows-x86_64") +-elseif(APPLE) +- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-macos-x86_64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-macos-aarch64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") +- message(FATAL_ERROR "PowerPC is not supported on macOS") +- else() +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++if(NOT DEFINED FFMPEG_PREPARED_BINARIES) ++ if(WIN32) ++ if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() ++ set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-windows-x86_64") ++ elseif(APPLE) ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-macos-x86_64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-macos-aarch64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") ++ message(FATAL_ERROR "PowerPC is not supported on macOS") ++ else() ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() ++ elseif(UNIX) ++ set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ++ list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-x86_64") ++ set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") ++ set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-aarch64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-powerpc64le") ++ else() ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() + endif() +-elseif(UNIX) +- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) +- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +- list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-x86_64") +- set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") +- set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-aarch64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-powerpc64le") +- else() +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ if(EXISTS ${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a) ++ set(HDR10_PLUS_LIBRARY ++ ${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a) + endif() ++ set(FFMPEG_LIBRARIES ++ ${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libx264.a ++ ${FFMPEG_PREPARED_BINARIES}/lib/libx265.a ++ ${HDR10_PLUS_LIBRARY} ++ ${FFMPEG_PLATFORM_LIBRARIES}) ++else() ++ set(FFMPEG_LIBRARIES ++ "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a" ++ ${FFMPEG_PLATFORM_LIBRARIES}) + endif() ++ + set(FFMPEG_INCLUDE_DIRS +- ${FFMPEG_PREPARED_BINARIES}/include) +-if(EXISTS ${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a) +- set(HDR10_PLUS_LIBRARY +- ${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a) +-endif() +-set(FFMPEG_LIBRARIES +- ${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libx264.a +- ${FFMPEG_PREPARED_BINARIES}/lib/libx265.a +- ${HDR10_PLUS_LIBRARY} +- ${FFMPEG_PLATFORM_LIBRARIES}) ++ "${FFMPEG_PREPARED_BINARIES}/include") + + # platform specific dependencies + if(WIN32) +-- +2.43.0 + + +From c871ffc1606f148e55f80415a289317f74820ddf Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 13:34:20 +0000 +Subject: [PATCH 4/4] Move numa from general PLATFORM_LIBRARIES to + FFMPEG_PLATFORM_LIBRARIES + +It's only needed if libx265 was built with NUMA support. This support +may be disabled in a custom FFmpeg build. +--- + cmake/compile_definitions/linux.cmake | 1 - + cmake/dependencies/common.cmake | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake +index a13a823..a2baa9c 100644 +--- a/cmake/compile_definitions/linux.cmake ++++ b/cmake/compile_definitions/linux.cmake +@@ -223,7 +223,6 @@ list(APPEND PLATFORM_LIBRARIES + Boost::dynamic_linking + dl + evdev +- numa + pulse + pulse-simple) + +diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake +index 30069d3..fc86ab7 100644 +--- a/cmake/dependencies/common.cmake ++++ b/cmake/dependencies/common.cmake +@@ -56,7 +56,7 @@ if(NOT DEFINED FFMPEG_PREPARED_BINARIES) + message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) + endif() + elseif(UNIX) +- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) ++ set(FFMPEG_PLATFORM_LIBRARIES numa va va-drm va-x11 vdpau X11) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) + set(FFMPEG_PREPARED_BINARIES "${CMAKE_CURRENT_SOURCE_DIR}/third-party/ffmpeg-linux-x86_64") +-- +2.43.0 + |