summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2024-03-02 19:12:36 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2024-03-02 19:12:36 +0300
commit0fce87ff59c97ce26826508bdb3df4e2f6dc117e (patch)
tree9104caf19d52df70131ed83cbc5cb17f409e06a4
parentMerge pull request #282021 from r-ryantm/auto-update/linux-router-without-wifi (diff)
downloadnixpkgs-sunshine.tar.gz
sunshinesunshine
-rw-r--r--pkgs/servers/sunshine/default.nix42
-rw-r--r--pkgs/servers/sunshine/disable-web-ui.patch27
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}, \