sunshine: sort

This commit is contained in:
mivorasu
2025-07-27 14:57:16 +08:00
parent cf9b6c1e2a
commit 39772184cc
+32 -31
View File
@@ -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;