File disable-ffmpeg-download.patch of Package sunshine
diff '--color=auto' -rub sunshine.orig/cmake/dependencies/ffmpeg.cmake sunshine/cmake/dependencies/ffmpeg.cmake
--- sunshine.orig/cmake/dependencies/ffmpeg.cmake 2026-02-15 08:32:36.078268792 -0300
+++ sunshine/cmake/dependencies/ffmpeg.cmake 2026-02-15 15:03:25.601004224 -0300
@@ -1,166 +1,27 @@
-#
-# Loads FFmpeg pre-compiled binaries from GitHub releases or a user-specified path
-#
-include_guard(GLOBAL)
-
-# ffmpeg pre-compiled binaries
-if(NOT DEFINED FFMPEG_PREPARED_BINARIES)
- # Set platform-specific libraries
- if(WIN32)
+# Platform-specific libraries
+if(WIN32)
set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl)
- elseif(FREEBSD)
- # numa is not available on FreeBSD
+elseif(FREEBSD)
set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 X11)
- elseif(UNIX AND NOT APPLE)
+elseif(UNIX AND NOT APPLE)
set(FFMPEG_PLATFORM_LIBRARIES numa va va-drm va-x11 X11)
- endif()
-
- # Determine download location
- set(FFMPEG_DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/_deps")
-
- # Get the current commit/tag from the build-deps submodule
- execute_process(
- COMMAND git -C "${CMAKE_SOURCE_DIR}/third-party/build-deps" describe --tags --exact-match
- OUTPUT_VARIABLE FFMPEG_RELEASE_TAG
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
-
- # If no exact tag match, try to get the commit hash and look for a tag
- if(NOT FFMPEG_RELEASE_TAG)
- execute_process(
- COMMAND git -C "${CMAKE_SOURCE_DIR}/third-party/build-deps" rev-parse HEAD
- OUTPUT_VARIABLE BUILD_DEPS_COMMIT
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
-
- # Try to find a tag that points to this commit
- execute_process(
- COMMAND git -C "${CMAKE_SOURCE_DIR}/third-party/build-deps" tag --points-at ${BUILD_DEPS_COMMIT}
- OUTPUT_VARIABLE FFMPEG_RELEASE_TAG
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
- endif()
-
- # Set GitHub release URL
- set(FFMPEG_GITHUB_REPO "LizardByte/build-deps")
- if(FFMPEG_RELEASE_TAG)
- set(FFMPEG_RELEASE_URL "https://github.com/${FFMPEG_GITHUB_REPO}/releases/download/${FFMPEG_RELEASE_TAG}")
- set(FFMPEG_VERSION_DIR "${FFMPEG_DOWNLOAD_DIR}/ffmpeg-${FFMPEG_RELEASE_TAG}")
- message(STATUS "Using FFmpeg from build-deps tag: ${FFMPEG_RELEASE_TAG}")
- else()
- set(FFMPEG_RELEASE_URL "https://github.com/${FFMPEG_GITHUB_REPO}/releases/latest/download")
- set(FFMPEG_VERSION_DIR "${FFMPEG_DOWNLOAD_DIR}/ffmpeg-latest")
- message(STATUS "Using FFmpeg from latest build-deps release")
- endif()
-
- # Set extraction directory and prepared binaries path
- set(FFMPEG_EXTRACT_DIR "${FFMPEG_DOWNLOAD_DIR}")
- set(FFMPEG_PREPARED_BINARIES "${FFMPEG_EXTRACT_DIR}/ffmpeg")
-
- # Set the archive filename based on architecture
- set(FFMPEG_ARCHIVE_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}-ffmpeg.tar.gz")
- set(FFMPEG_ARCHIVE_PATH "${FFMPEG_VERSION_DIR}/${FFMPEG_ARCHIVE_NAME}")
- set(FFMPEG_DOWNLOAD_URL "${FFMPEG_RELEASE_URL}/${FFMPEG_ARCHIVE_NAME}")
-
- # Check if already downloaded and extracted
- if(NOT EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a")
- # Check if we need to download the archive
- if(NOT EXISTS "${FFMPEG_ARCHIVE_PATH}")
- message(STATUS "Downloading FFmpeg binaries from ${FFMPEG_DOWNLOAD_URL}")
-
- # Download the archive
- file(DOWNLOAD
- "${FFMPEG_DOWNLOAD_URL}"
- "${FFMPEG_ARCHIVE_PATH}"
- SHOW_PROGRESS
- STATUS FFMPEG_DOWNLOAD_STATUS
- TIMEOUT 300
- )
-
- # Check download status
- list(GET FFMPEG_DOWNLOAD_STATUS 0 FFMPEG_DOWNLOAD_STATUS_CODE)
- list(GET FFMPEG_DOWNLOAD_STATUS 1 FFMPEG_DOWNLOAD_STATUS_MESSAGE)
-
- if(NOT FFMPEG_DOWNLOAD_STATUS_CODE EQUAL 0)
- message(FATAL_ERROR "Failed to download FFmpeg binaries: ${FFMPEG_DOWNLOAD_STATUS_MESSAGE}")
- endif()
- else()
- message(STATUS "Using cached FFmpeg archive at ${FFMPEG_ARCHIVE_PATH}")
- endif()
-
- # Extract the archive
- message(STATUS "Extracting FFmpeg binaries to ${FFMPEG_EXTRACT_DIR}")
- file(ARCHIVE_EXTRACT # cmake-lint: disable=E1126
- INPUT "${FFMPEG_ARCHIVE_PATH}"
- DESTINATION "${FFMPEG_EXTRACT_DIR}"
- )
-
- # Verify extraction
- if(NOT EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a")
- message(FATAL_ERROR "FFmpeg extraction failed or unexpected directory structure")
- endif()
-
- message(STATUS "FFmpeg binaries successfully downloaded and extracted")
- else()
- message(STATUS "Using existing FFmpeg binaries at ${FFMPEG_PREPARED_BINARIES}")
- endif()
+endif()
- # Set FFmpeg libraries
- if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a")
- set(HDR10_PLUS_LIBRARY "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a")
- endif()
+find_package(PkgConfig REQUIRED)
- set(FFMPEG_LIBRARIES
- "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a"
- ${HDR10_PLUS_LIBRARY}
+pkg_check_modules(AVCODEC REQUIRED libavcodec)
+pkg_check_modules(AVUTIL REQUIRED libavutil)
+pkg_check_modules(SWSCALE REQUIRED libswscale)
+
+set(FFMPEG_LIBRARIES
+ ${AVCODEC_LIBRARIES}
+ ${AVUTIL_LIBRARIES}
+ ${SWSCALE_LIBRARIES}
${FFMPEG_PLATFORM_LIBRARIES}
- )
-else()
- # User provided FFMPEG_PREPARED_BINARIES path
- message(STATUS "Using user-specified FFmpeg binaries at ${FFMPEG_PREPARED_BINARIES}")
-
- # Set platform-specific libraries
- if(WIN32)
- set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl)
- elseif(FREEBSD)
- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 X11)
- elseif(UNIX AND NOT APPLE)
- set(FFMPEG_PLATFORM_LIBRARIES numa va va-drm va-x11 X11)
- endif()
-
- # Set base FFmpeg libraries (always required)
- set(FFMPEG_LIBRARIES
- "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a"
- "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a"
- )
-
- # Add optional libraries if they exist (e.g., from prebuilt packages)
- if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a")
- list(APPEND FFMPEG_LIBRARIES "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a")
- endif()
- if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a")
- list(APPEND FFMPEG_LIBRARIES "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a")
- endif()
- if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a")
- list(APPEND FFMPEG_LIBRARIES "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a")
- endif()
- if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a")
- list(APPEND FFMPEG_LIBRARIES "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a")
- endif()
-
- # Add platform libraries
- list(APPEND FFMPEG_LIBRARIES ${FFMPEG_PLATFORM_LIBRARIES})
-endif()
+)
-set(FFMPEG_INCLUDE_DIRS "${FFMPEG_PREPARED_BINARIES}/include")
+set(FFMPEG_INCLUDE_DIRS
+ ${AVCODEC_INCLUDE_DIRS}
+ ${AVUTIL_INCLUDE_DIRS}
+ ${SWSCALE_INCLUDE_DIRS}
+)