diff options
| author | Oleg Pykhalov <go.wigust@gmail.com> | 2024-03-02 19:12:36 +0300 |
|---|---|---|
| committer | Oleg Pykhalov <go.wigust@gmail.com> | 2024-03-02 19:12:36 +0300 |
| commit | 0fce87ff59c97ce26826508bdb3df4e2f6dc117e (patch) | |
| tree | 9104caf19d52df70131ed83cbc5cb17f409e06a4 | |
| parent | Merge pull request #282021 from r-ryantm/auto-update/linux-router-without-wifi (diff) | |
| download | nixpkgs-sunshine.tar.gz | |
sunshinesunshine
| -rw-r--r-- | pkgs/servers/sunshine/default.nix | 42 | ||||
| -rw-r--r-- | pkgs/servers/sunshine/disable-web-ui.patch | 27 |
2 files changed, 43 insertions, 26 deletions
diff --git a/pkgs/servers/sunshine/default.nix b/pkgs/servers/sunshine/default.nix index 331770a565d5..b9fc2b678346 100644 --- a/pkgs/servers/sunshine/default.nix +++ b/pkgs/servers/sunshine/default.nix @@ -42,6 +42,9 @@ , config , cudaSupport ? config.cudaSupport , cudaPackages ? {} +, miniupnpc +, udev +, nodejs }: stdenv.mkDerivation rec { pname = "sunshine"; @@ -50,29 +53,14 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "LizardByte"; repo = "Sunshine"; - rev = "v${version}"; - sha256 = "sha256-uvQAJkoKazFLz5iTpYSAGYJQZ2EprQ+p9+tryqorFHM="; + rev = "9a3553db04e20436855567ba8023c060024c7557"; + sha256 = "sha256-U0Ks3a7RQ1U0RbDsu/d9fnOb3as3ITG627SNogobTnU="; fetchSubmodules = true; }; - # fetch node_modules needed for webui - ui = buildNpmPackage { - inherit src version; - pname = "sunshine-ui"; - npmDepsHash = "sha256-+T1XAf4SThoJLOFpnVxDa2qiKFLIKQPGewjA83GQovM="; - - dontNpmBuild = true; - - # use generated package-lock.json as upstream does not provide one - postPatch = '' - cp ${./package-lock.json} ./package-lock.json - ''; - - installPhase = '' - mkdir -p $out - cp -r node_modules $out/ - ''; - }; + patches = [ + ./disable-web-ui.patch + ]; nativeBuildInputs = [ cmake @@ -121,6 +109,9 @@ stdenv.mkDerivation rec { svt-av1 libappindicator libnotify + miniupnpc + udev + nodejs ] ++ lib.optionals cudaSupport [ cudaPackages.cudatoolkit ] ++ lib.optionals stdenv.isx86_64 [ @@ -149,18 +140,17 @@ stdenv.mkDerivation rec { --replace '@PROJECT_DESCRIPTION@' 'Self-hosted game stream host for Moonlight' ''; - preBuild = '' - # copy node_modules where they can be picked up by build - mkdir -p ../node_modules - cp -r ${ui}/node_modules/* ../node_modules - ''; - # allow Sunshine to find libvulkan postFixup = lib.optionalString cudaSupport '' wrapProgram $out/bin/sunshine \ --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ vulkan-loader ]} ''; + preInstall = '' + mkdir -p assets + cp -a ${/nix/store/cnrc5fpqarijbwz3fn64riby2fcajzn0-sunshine-0.21.0/assets/web} assets/web + ''; + postInstall = '' install -Dm644 ../packaging/linux/${pname}.desktop $out/share/applications/${pname}.desktop ''; diff --git a/pkgs/servers/sunshine/disable-web-ui.patch b/pkgs/servers/sunshine/disable-web-ui.patch new file mode 100644 index 000000000000..05118fafaf31 --- /dev/null +++ b/pkgs/servers/sunshine/disable-web-ui.patch @@ -0,0 +1,27 @@ +--- a/cmake/targets/common.cmake 1970-01-01 03:00:01.000000000 +0300 ++++ b/cmake/targets/common.cmake 2024-01-28 10:18:50.001752939 +0300 +@@ -33,9 +33,3 @@ + endforeach() + + target_compile_options(sunshine PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${SUNSHINE_COMPILE_OPTIONS}>;$<$<COMPILE_LANGUAGE:CUDA>:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 +- +-#WebUI build +-add_custom_target(web-ui ALL +- WORKING_DIRECTORY ${CMAKE_CURRENT_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 +--- a/cmake/packaging/linux.cmake ++++ b/cmake/packaging/linux.cmake +@@ -75,12 +75,6 @@ if(${SUNSHINE_TRAY} STREQUAL 1) + install(FILES "${CMAKE_SOURCE_DIR}/sunshine.svg" + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/status" + RENAME "sunshine-tray.svg") +- install(FILES "${SUNSHINE_SOURCE_ASSETS_DIR}/common/assets/web/public/images/sunshine-playing.svg" +- DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/status") +- install(FILES "${SUNSHINE_SOURCE_ASSETS_DIR}/common/assets/web/public/images/sunshine-pausing.svg" +- DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/status") +- install(FILES "${SUNSHINE_SOURCE_ASSETS_DIR}/common/assets/web/public/images/sunshine-locked.svg" +- DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/status") + + set(CPACK_DEBIAN_PACKAGE_DEPENDS "\ + ${CPACK_DEBIAN_PACKAGE_DEPENDS}, \ |
