jellyfin: 10.10.7 -> 10.11.0

adapt the test due to slower start and small API change
This commit is contained in:
Minijackson
2025-10-20 09:54:16 +02:00
parent 42c0808347
commit 4957a9976f
4 changed files with 376 additions and 271 deletions

View File

@@ -271,6 +271,10 @@
- `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables. - `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables.
If your previous configuration included a secret reference like `server.secret_key = "@SEARX_SECRET_KEY@"`, you must migrate to the new envsubst syntax: `server.secret_key = "$SEARX_SECRET_KEY"`. If your previous configuration included a secret reference like `server.secret_key = "@SEARX_SECRET_KEY@"`, you must migrate to the new envsubst syntax: `server.secret_key = "$SEARX_SECRET_KEY"`.
- `jellyfin` was updated to `10.11.x`, which includes heavy backend changes.
Make sure to backup your data and configuration directories
and read the [Jellyfin 10.11.0 release announcement](https://jellyfin.org/posts/jellyfin-release-10.11.0/).
- A new hardening flag, `glibcxxassertions` was made available, corresponding to the glibc `_GLIBCXX_ASSERTIONS` option. - A new hardening flag, `glibcxxassertions` was made available, corresponding to the glibc `_GLIBCXX_ASSERTIONS` option.
- `versionCheckHook`: Packages that previously relied solely on `pname` to locate the program used to version check, but have a differing `meta.mainProgram` entry, might now fail. - `versionCheckHook`: Packages that previously relied solely on `pname` to locate the program used to version check, but have a differing `meta.mainProgram` entry, might now fail.

View File

@@ -4,12 +4,12 @@
name = "jellyfin"; name = "jellyfin";
meta.maintainers = with lib.maintainers; [ minijackson ]; meta.maintainers = with lib.maintainers; [ minijackson ];
nodes.machine = nodes.machine = {
{ ... }: services.jellyfin.enable = true;
{ environment.systemPackages = with pkgs; [ ffmpeg ];
services.jellyfin.enable = true; # Jellyfin fails to start if the data dir doesn't have at least 2GiB of free space
environment.systemPackages = with pkgs; [ ffmpeg ]; virtualisation.diskSize = 3 * 1024;
}; };
# Documentation of the Jellyfin API: https://api.jellyfin.org/ # Documentation of the Jellyfin API: https://api.jellyfin.org/
# Beware, this link can be resource intensive # Beware, this link can be resource intensive
@@ -30,6 +30,7 @@
machine.wait_for_unit("jellyfin.service") machine.wait_for_unit("jellyfin.service")
machine.wait_for_open_port(8096) machine.wait_for_open_port(8096)
machine.wait_until_succeeds("journalctl --since -1m --unit jellyfin --grep 'Startup complete'")
machine.succeed("curl --fail http://localhost:8096/") machine.succeed("curl --fail http://localhost:8096/")
machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy") machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy")
@@ -105,7 +106,7 @@
folders_str = machine.succeed(api_get("/Library/VirtualFolders")) folders_str = machine.succeed(api_get("/Library/VirtualFolders"))
folders = json.loads(folders_str) folders = json.loads(folders_str)
print(folders) print(folders)
return all(folder["RefreshStatus"] == "Idle" for folder in folders) return all(folder.get("RefreshStatus") == "Idle" for folder in folders)
retry(is_refreshed) retry(is_refreshed)

File diff suppressed because it is too large Load Diff

View File

@@ -13,13 +13,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "jellyfin"; pname = "jellyfin";
version = "10.10.7"; # ensure that jellyfin-web has matching version version = "10.11.0"; # ensure that jellyfin-web has matching version
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jellyfin"; owner = "jellyfin";
repo = "jellyfin"; repo = "jellyfin";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-GWpzX8DvCafHb5V9it0ZPTXKm+NbLS7Oepe/CcMiFuI="; hash = "sha256-8kvN2ZugmjjgSMepDdP9tc48362b6w+RpIsp/IXaivM=";
}; };
propagatedBuildInputs = [ sqlite ]; propagatedBuildInputs = [ sqlite ];
@@ -32,8 +32,8 @@ buildDotnetModule rec {
fontconfig fontconfig
freetype freetype
]; ];
dotnet-sdk = dotnetCorePackages.sdk_8_0; dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0; dotnet-runtime = dotnetCorePackages.aspnetcore_9_0;
dotnetBuildFlags = [ "--no-self-contained" ]; dotnetBuildFlags = [ "--no-self-contained" ];
makeWrapperArgs = [ makeWrapperArgs = [