diff --git a/pkgs/servers/sunshine/default.nix b/pkgs/servers/sunshine/default.nix index aa7b079fea19..3e15d7802dcb 100644 --- a/pkgs/servers/sunshine/default.nix +++ b/pkgs/servers/sunshine/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , autoPatchelfHook , makeWrapper , buildNpmPackage @@ -50,32 +49,26 @@ let in stdenv'.mkDerivation rec { pname = "sunshine"; - version = "0.22.0"; + version = "0.22.2"; src = fetchFromGitHub { owner = "LizardByte"; repo = "Sunshine"; rev = "v${version}"; - sha256 = "sha256-O9U4zP1o6yWtzk+2DW7ueimvsTuajLY8IETlvCT4jTE="; + sha256 = "sha256-So8fX0XQoW2cdTWWENoE07EU6e8vvjeTpizLoaDTjeg="; fetchSubmodules = true; }; patches = [ # remove npm install as it needs internet access -- handled separately below ./dont-build-webui.patch - # revert https://github.com/LizardByte/Sunshine/pull/2046 - let cmake install handle udev and systemd files - (fetchpatch { - url = "https://github.com/LizardByte/Sunshine/commit/0d4dfcd708c0027b7d8827a03163858800fa79fa.patch"; - hash = "sha256-77NtfX0zB7ty92AyFOz9wJoa1jHshlNbPQ7NOpqUuYo="; - revert = true; - }) ]; # build webui ui = buildNpmPackage { inherit src version; pname = "sunshine-ui"; - npmDepsHash = "sha256-jAZUu2CfcqhC2xMiZYpY7KPCRVFQgT/kgUvSI+5Cpkc="; + npmDepsHash = "sha256-0487ntbJZ20MZHezQ+Z3EJkidF3Dgoh/mynYwR7k/+I="; # use generated package-lock.json as upstream does not provide one postPatch = '' @@ -152,17 +145,21 @@ stdenv'.mkDerivation rec { cmakeFlags = [ "-Wno-dev" + # upstream tries to use systemd and udev packages to find these directories in FHS; set the paths explicitly instead + (lib.cmakeFeature "UDEV_RULES_INSTALL_DIR" "lib/udev/rules.d") + (lib.cmakeFeature "SYSTEMD_USER_UNIT_INSTALL_DIR" "lib/systemd/user") ]; postPatch = '' - # fix hardcoded libevdev path - substituteInPlace cmake/compile_definitions/linux.cmake \ - --replace '/usr/include/libevdev-1.0' '${libevdev}/include/libevdev-1.0' + # remove upstream dependency on systemd and udev + substituteInPlace cmake/packaging/linux.cmake \ + --replace-fail 'find_package(Systemd)' "" \ + --replace-fail 'find_package(Udev)' "" substituteInPlace packaging/linux/sunshine.desktop \ - --replace '@PROJECT_NAME@' 'Sunshine' \ - --replace '@PROJECT_DESCRIPTION@' 'Self-hosted game stream host for Moonlight' \ - --replace '/usr/bin/env systemctl start --u sunshine' 'sunshine' + --subst-var-by PROJECT_NAME 'Sunshine' \ + --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \ + --replace-fail '/usr/bin/env systemctl start --u sunshine' 'sunshine' ''; preBuild = '' diff --git a/pkgs/servers/sunshine/dont-build-webui.patch b/pkgs/servers/sunshine/dont-build-webui.patch index cba7a1e243b1..f4addc55e468 100644 --- a/pkgs/servers/sunshine/dont-build-webui.patch +++ b/pkgs/servers/sunshine/dont-build-webui.patch @@ -1,14 +1,14 @@ diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake -index 3dd629e..acec58d 100644 +index 9f2ce08..8c32b8f 100644 --- a/cmake/targets/common.cmake +++ b/cmake/targets/common.cmake -@@ -37,8 +37,4 @@ endif() - - target_compile_options(sunshine PRIVATE $<$:${SUNSHINE_COMPILE_OPTIONS}>;$<$:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 +@@ -48,8 +48,4 @@ else() + set(NPM_BUILD_HOMEBREW "") + endif() -#WebUI build -add_custom_target(web-ui ALL - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - COMMENT "Installing NPM Dependencies and Building the Web UI" -- COMMAND bash -c \"npm install && SUNSHINE_SOURCE_ASSETS_DIR=${SUNSHINE_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${CMAKE_BINARY_DIR} npm run build\") # cmake-lint: disable=C0301 +- COMMAND bash -c \"npm install && SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW} SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR} npm run build\") # cmake-lint: disable=C0301 + diff --git a/pkgs/servers/sunshine/package-lock.json b/pkgs/servers/sunshine/package-lock.json index ea31d56d727c..63a10b418964 100644 --- a/pkgs/servers/sunshine/package-lock.json +++ b/pkgs/servers/sunshine/package-lock.json @@ -1,5 +1,5 @@ { - "name": "Sunshine", + "name": "sunshine", "lockfileVersion": 3, "requires": true, "packages": { @@ -790,9 +790,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.3.tgz", + "integrity": "sha512-H/5Vyeo/I1hqIdOS0m1Q63OPr0yFdZLaiVkr8ap/WyIVGdU3PyoOV/HXY8+PJE2M43+n11FY5zWQnNRNnD1UFg==", "engines": { "node": ">=0.10.0" }