diff options
Diffstat (limited to 'pkgs/servers/jellyfin/web.nix')
-rw-r--r-- | pkgs/servers/jellyfin/web.nix | 70 |
1 files changed, 53 insertions, 17 deletions
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix index b2a40c0690832..f5d65ae059837 100644 --- a/pkgs/servers/jellyfin/web.nix +++ b/pkgs/servers/jellyfin/web.nix @@ -1,25 +1,56 @@ -{ lib -, fetchFromGitHub -, stdenv -, buildNpmPackage -, nix-update-script +{ + lib, + stdenv, + overrideSDK, + fetchFromGitHub, + buildNpmPackage, + jellyfin, + nix-update-script, + pkg-config, + xcbuild, + pango, + giflib, + darwin, }: - -buildNpmPackage rec { +let + # node-canvas builds code that requires aligned_alloc, + # which on Darwin requires at least the 10.15 SDK + stdenv' = + if stdenv.isDarwin then + overrideSDK stdenv { + darwinMinVersion = "10.15"; + darwinSdkVersion = "11.0"; + } + else + stdenv; + buildNpmPackage' = buildNpmPackage.override { stdenv = stdenv'; }; +in +buildNpmPackage' rec { pname = "jellyfin-web"; - version = "10.8.13"; + version = "10.9.3"; - src = fetchFromGitHub { - owner = "jellyfin"; - repo = "jellyfin-web"; - rev = "v${version}"; - hash = "sha256-2W9s8TQV9BtxNYIrCbGRh5EUw0brwxSHohnb7269pQE="; - }; + src = + assert version == jellyfin.version; + fetchFromGitHub { + owner = "jellyfin"; + repo = "jellyfin-web"; + rev = "v${version}"; + hash = "sha256-duq2tilUDEzj7o3Nq3Ku5qVJm4XDqVmqkQQIK/dlTpE="; + }; - npmDepsHash = "sha256-i077UAxY2K12VXkHYbGYZRV1uhgdGUnoDbokSk2ZDIA="; + npmDepsHash = "sha256-nKA/mR1ug1yq4+jJGhWGtAL9Zsx3KjDPqt5rkCE4LFU="; npmBuildScript = [ "build:production" ]; + nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.isDarwin [ xcbuild ]; + + buildInputs = + [ pango ] + ++ lib.optionals stdenv.isDarwin [ + giflib + darwin.apple_sdk.frameworks.CoreText + ]; + installPhase = '' runHook preInstall @@ -29,12 +60,17 @@ buildNpmPackage rec { runHook postInstall ''; - passthru.updateScript = nix-update-script {}; + passthru.updateScript = nix-update-script { }; meta = with lib; { description = "Web Client for Jellyfin"; homepage = "https://jellyfin.org/"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ]; + maintainers = with maintainers; [ + nyanloutre + minijackson + purcell + jojosch + ]; }; } |