From 39772184cc545f20961c7c2edf1d6cea589510ab Mon Sep 17 00:00:00 2001 From: mivorasu Date: Sun, 27 Jul 2025 14:57:16 +0800 Subject: [PATCH] sunshine: sort --- pkgs/by-name/su/sunshine/package.nix | 63 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/pkgs/by-name/su/sunshine/package.nix b/pkgs/by-name/su/sunshine/package.nix index 941391c6f35e..3f73c662ebe6 100644 --- a/pkgs/by-name/su/sunshine/package.nix +++ b/pkgs/by-name/su/sunshine/package.nix @@ -87,6 +87,30 @@ stdenv'.mkDerivation (finalAttrs: { ''; }; + postPatch = # remove upstream dependency on systemd and udev + '' + substituteInPlace cmake/packaging/linux.cmake \ + --replace-fail 'find_package(Systemd)' "" \ + --replace-fail 'find_package(Udev)' "" + '' + # don't look for npm since we build webui separately + + '' + substituteInPlace cmake/targets/common.cmake \ + --replace-fail 'find_program(NPM npm REQUIRED)' "" + + substituteInPlace packaging/linux/dev.lizardbyte.app.Sunshine.desktop \ + --subst-var-by PROJECT_NAME 'Sunshine' \ + --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \ + --subst-var-by SUNSHINE_DESKTOP_ICON 'sunshine' \ + --subst-var-by CMAKE_INSTALL_FULL_DATAROOTDIR "$out/share" \ + --replace-fail '/usr/bin/env systemctl start --u sunshine' 'sunshine' + + substituteInPlace packaging/linux/sunshine.service.in \ + --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \ + --subst-var-by SUNSHINE_EXECUTABLE_PATH $out/bin/sunshine \ + --replace-fail '/bin/sleep' '${lib.getExe' coreutils "sleep"}' + ''; + nativeBuildInputs = [ cmake pkg-config @@ -95,7 +119,6 @@ stdenv'.mkDerivation (finalAttrs: { wayland-scanner # Avoid fighting upstream's usage of vendored ffmpeg libraries autoPatchelfHook - udevCheckHook ] ++ lib.optionals cudaSupport [ autoAddDriverRunpath @@ -181,30 +204,6 @@ stdenv'.mkDerivation (finalAttrs: { COMMIT = ""; }; - postPatch = # remove upstream dependency on systemd and udev - '' - substituteInPlace cmake/packaging/linux.cmake \ - --replace-fail 'find_package(Systemd)' "" \ - --replace-fail 'find_package(Udev)' "" - '' - # don't look for npm since we build webui separately - + '' - substituteInPlace cmake/targets/common.cmake \ - --replace-fail 'find_program(NPM npm REQUIRED)' "" - - substituteInPlace packaging/linux/dev.lizardbyte.app.Sunshine.desktop \ - --subst-var-by PROJECT_NAME 'Sunshine' \ - --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \ - --subst-var-by SUNSHINE_DESKTOP_ICON 'sunshine' \ - --subst-var-by CMAKE_INSTALL_FULL_DATAROOTDIR "$out/share" \ - --replace-fail '/usr/bin/env systemctl start --u sunshine' 'sunshine' - - substituteInPlace packaging/linux/sunshine.service.in \ - --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \ - --subst-var-by SUNSHINE_EXECUTABLE_PATH $out/bin/sunshine \ - --replace-fail '/bin/sleep' '${lib.getExe' coreutils "sleep"}' - ''; - # copy webui where it can be picked up by build preBuild = '' cp -r ${finalAttrs.ui}/build ../ @@ -214,12 +213,6 @@ stdenv'.mkDerivation (finalAttrs: { "sunshine" ]; - # allow Sunshine to find libvulkan - postFixup = lib.optionalString cudaSupport '' - wrapProgram $out/bin/sunshine \ - --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ vulkan-loader ]} - ''; - # redefine installPhase to avoid attempt to build webui installPhase = '' runHook preInstall @@ -233,8 +226,16 @@ stdenv'.mkDerivation (finalAttrs: { install -Dm644 ../packaging/linux/dev.lizardbyte.app.Sunshine.desktop $out/share/applications/dev.lizardbyte.app.Sunshine.desktop ''; + # allow Sunshine to find libvulkan + postFixup = lib.optionalString cudaSupport '' + wrapProgram $out/bin/sunshine \ + --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ vulkan-loader ]} + ''; + doInstallCheck = true; + nativeInstallCheckInputs = [ udevCheckHook ]; + passthru = { tests.sunshine = nixosTests.sunshine; updateScript = ./updater.sh;