From 68780c2a6e5c798049eadf358ffe69e9b49bcf6e Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Sat, 25 Apr 2026 12:42:24 -0700 Subject: [PATCH 1/3] immichframe: refactor to add `updateScript` --- pkgs/by-name/im/immichframe/package.nix | 38 ++++++++++--------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/im/immichframe/package.nix b/pkgs/by-name/im/immichframe/package.nix index dbc88fa3b41e..3605a12a4d70 100644 --- a/pkgs/by-name/im/immichframe/package.nix +++ b/pkgs/by-name/im/immichframe/package.nix @@ -3,10 +3,11 @@ buildNpmPackage, dotnet-sdk, fetchFromGitHub, - fetchpatch, lib, nixosTests, writeShellApplication, + _experimental-update-script-combinators, + nix-update-script, }: let @@ -18,32 +19,13 @@ let hash = "sha256-YFh+/QWYYtQzBVJUyUuhhKqi9/5waWVX+lw/tov++ws="; }; - publishApi = buildDotnetModule { + api = buildDotnetModule { pname = "immichframe"; inherit version src; projectFile = "ImmichFrame.WebApi/ImmichFrame.WebApi.csproj"; nugetDeps = ./deps.json; dotnet-runtime = dotnet-sdk.aspnetcore; - patches = [ - # This not-yet-released commit has landed upstream. It adds a - # `IMMICHFRAME_CONFIG_PATH` environment variable for a "configurable" - # config path. - (fetchpatch { - name = "Configurable config path"; - url = "https://github.com/immichFrame/ImmichFrame/commit/f6680f23bcf107ce27372dfb37809c0f92ebb2f2.patch"; - hash = "sha256-dQnspQEKixQgBpCvNxrYL51z5wg5BhdN0uTuaXgKQZU="; - }) - # This patch adds an `ApiKeyFile` option, which makes it possible to - # configure ImmichFrame without leaking secrets into your configuration. - # See [upstream PR](https://github.com/immichFrame/ImmichFrame/pull/511) - (fetchpatch { - name = "Add a `ApiKeyFile` option"; - url = "https://github.com/immichFrame/ImmichFrame/commit/f5bb164170460b1020bfe6bce8e8abb3315e32e3.diff"; - hash = "sha256-F3BVIxcu8Hm6wbWmzVnfgm6XvqdBw4IiS61CDQiMRVg="; - }) - ]; - meta.mainProgram = "ImmichFrame.WebApi"; }; @@ -71,10 +53,20 @@ writeShellApplication { text = '' cd ${frontend} - exec ${lib.getExe publishApi} "$@" + exec ${lib.getExe api} "$@" ''; - passthru.tests = { inherit (nixosTests) immichframe; }; + passthru = { + inherit api frontend; + updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { attrPath = "immichframe.api"; }) + (nix-update-script { + attrPath = "immichframe.frontend"; + extraArgs = [ "--version=skip" ]; + }) + ]; + tests = { inherit (nixosTests) immichframe; }; + }; meta = { description = "Display your photos from Immich as a digital photo frame"; From 3416a77b10effb06e39a72692bf0065e82ec9c55 Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Sat, 25 Apr 2026 19:45:27 +0000 Subject: [PATCH 2/3] immichframe: 1.0.29.0 -> 1.0.33.0 https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.30.0 https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.31.0 https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.32.0 https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.33.0 --- pkgs/by-name/im/immichframe/deps.json | 238 +----------------------- pkgs/by-name/im/immichframe/package.nix | 6 +- 2 files changed, 7 insertions(+), 237 deletions(-) diff --git a/pkgs/by-name/im/immichframe/deps.json b/pkgs/by-name/im/immichframe/deps.json index abf5e32343d8..e8f2efbd7986 100644 --- a/pkgs/by-name/im/immichframe/deps.json +++ b/pkgs/by-name/im/immichframe/deps.json @@ -1,54 +1,19 @@ [ - { - "pname": "AwesomeAssertions", - "version": "9.2.0", - "hash": "sha256-s5j46b6KchKwjQgiXvCYUZLk5Xtk4sb1wSh25f8ShFc=" - }, { "pname": "BloomFilter.NetCore", "version": "2.5.3", "hash": "sha256-UfH3JZgUh8zj34+E1DLZdKo9Dyqb/Ek8qmg4kx5N818=" }, - { - "pname": "Castle.Core", - "version": "5.1.1", - "hash": "sha256-oVkQB+ON7S6Q27OhXrTLaxTL0kWB58HZaFFuiw4iTrE=" - }, - { - "pname": "coverlet.collector", - "version": "6.0.4", - "hash": "sha256-ieiUl7G5pVKQ4V6rxhEe0ehep0/u1RBD3EAI63AQTI0=" - }, { "pname": "Ical.Net", "version": "4.3.1", "hash": "sha256-jpohvCiUBe61A3O+BJwCqsPW+3jUt4cKeCqZb/0cw0M=" }, - { - "pname": "Microsoft.ApplicationInsights", - "version": "2.23.0", - "hash": "sha256-5sf3bg7CZZjHseK+F3foOchEhmVeioePxMZVvS6Rjb0=" - }, - { - "pname": "Microsoft.AspNetCore.Mvc.Testing", - "version": "8.0.20", - "hash": "sha256-jSWZfbewG7LqrqVQ4wmwj4K6OPGslm0wt4D5wK2TlFc=" - }, { "pname": "Microsoft.AspNetCore.SpaProxy", "version": "8.0.20", "hash": "sha256-kjvVZQBbE6fjKdbZsg+BNCRHh3d5fvxNNFaCF5fxQSI=" }, - { - "pname": "Microsoft.AspNetCore.TestHost", - "version": "8.0.20", - "hash": "sha256-M/MTiN0nNQ8eKQn9r8TnIXYWxOYgBHNG/PZtvnInmDw=" - }, - { - "pname": "Microsoft.CodeCoverage", - "version": "17.14.1", - "hash": "sha256-f8QytG8GvRoP47rO2KEmnDLxIpyesaq26TFjDdW40Gs=" - }, { "pname": "Microsoft.Extensions.ApiDescription.Client", "version": "8.0.20", @@ -94,36 +59,6 @@ "version": "8.0.0", "hash": "sha256-GanfInGzzoN2bKeNwON8/Hnamr6l7RTpYLA49CNXD9Q=" }, - { - "pname": "Microsoft.Extensions.Configuration.Binder", - "version": "8.0.2", - "hash": "sha256-aGB0VuoC34YadAEqrwoaXLc5qla55pswDV2xLSmR7SE=" - }, - { - "pname": "Microsoft.Extensions.Configuration.CommandLine", - "version": "8.0.0", - "hash": "sha256-fmPC/o8S+weTtQJWykpnGHm6AKVU21xYE/CaHYU7zgg=" - }, - { - "pname": "Microsoft.Extensions.Configuration.EnvironmentVariables", - "version": "8.0.0", - "hash": "sha256-+bjFZvqCsMf2FRM2olqx/fub+QwfM1kBhjGVOT5HC48=" - }, - { - "pname": "Microsoft.Extensions.Configuration.FileExtensions", - "version": "8.0.1", - "hash": "sha256-iRA8L7BX/fe5LHCVOhzBSk30GfshP7V2Qj2nxpEvStA=" - }, - { - "pname": "Microsoft.Extensions.Configuration.Json", - "version": "8.0.1", - "hash": "sha256-J8EK/yhsfTpeSUY8F81ZTBV9APHiPUliN7d+n2OX9Ig=" - }, - { - "pname": "Microsoft.Extensions.Configuration.UserSecrets", - "version": "8.0.1", - "hash": "sha256-yGvWfwBhyFudcIv96pKWaQ1MIMOiv5LHSCn+9J7Doz0=" - }, { "pname": "Microsoft.Extensions.DependencyInjection", "version": "8.0.1", @@ -149,11 +84,6 @@ "version": "9.0.5", "hash": "sha256-JSGmzV9CdZaRIBDbnUXCMlrIk2oVnrQSCL79xoNmjeY=" }, - { - "pname": "Microsoft.Extensions.DependencyModel", - "version": "8.0.2", - "hash": "sha256-PyuO/MyCR9JtYqpA1l/nXGh+WLKCq34QuAXN9qNza9Q=" - }, { "pname": "Microsoft.Extensions.Diagnostics", "version": "8.0.1", @@ -164,31 +94,6 @@ "version": "8.0.1", "hash": "sha256-d5DVXhA8qJFY9YbhZjsTqs5w5kDuxF5v+GD/WZR1QL0=" }, - { - "pname": "Microsoft.Extensions.FileProviders.Abstractions", - "version": "8.0.0", - "hash": "sha256-uQSXmt47X2HGoVniavjLICbPtD2ReQOYQMgy3l0xuMU=" - }, - { - "pname": "Microsoft.Extensions.FileProviders.Physical", - "version": "8.0.0", - "hash": "sha256-29y5ZRQ1ZgzVOxHktYxyiH40kVgm5un2yTGdvuSWnRc=" - }, - { - "pname": "Microsoft.Extensions.FileSystemGlobbing", - "version": "8.0.0", - "hash": "sha256-+Oz41JR5jdcJlCJOSpQIL5OMBNi+1Hl2d0JUHfES7sU=" - }, - { - "pname": "Microsoft.Extensions.Hosting", - "version": "8.0.1", - "hash": "sha256-FFLo6em0N2vaWg6//vaQhxoOgT9LLH5Y2KWkCeX5xQ4=" - }, - { - "pname": "Microsoft.Extensions.Hosting.Abstractions", - "version": "8.0.1", - "hash": "sha256-/bIVL9uvBQhV/KQmjA1ZjR74sMfaAlBb15sVXsGDEVA=" - }, { "pname": "Microsoft.Extensions.Http", "version": "8.0.1", @@ -214,31 +119,6 @@ "version": "9.0.5", "hash": "sha256-ILcK06TEbVwxUZ3PCpGkjg69H6PGwTXnN512JJ8F9KI=" }, - { - "pname": "Microsoft.Extensions.Logging.Configuration", - "version": "8.0.1", - "hash": "sha256-E2JbJG2EXlv2HUWLi17kIkAL6RC9rC2E18C3gAyOuaE=" - }, - { - "pname": "Microsoft.Extensions.Logging.Console", - "version": "8.0.1", - "hash": "sha256-2thhF1JbDNj3Bx2fcH7O26uHGNeMd9MYah6N60lIpIU=" - }, - { - "pname": "Microsoft.Extensions.Logging.Debug", - "version": "8.0.1", - "hash": "sha256-gKFqBg5lbjy5VBEcAuoQ/SsXAxvrYdBYOu9dV60eJKg=" - }, - { - "pname": "Microsoft.Extensions.Logging.EventLog", - "version": "8.0.1", - "hash": "sha256-1UkEOwl3Op2b3jTvpI10hHxIe9FqeVVy+VB1tZp6Lc8=" - }, - { - "pname": "Microsoft.Extensions.Logging.EventSource", - "version": "8.0.1", - "hash": "sha256-EINT/PgfB4Dvf+1JBzL1plPT35ezT7kyS8y/XMMgYxA=" - }, { "pname": "Microsoft.Extensions.Options", "version": "6.0.0", @@ -279,71 +159,11 @@ "version": "9.0.5", "hash": "sha256-3ctJMOwnEsBSNqcrh77IItX2wtOmjM/b8OTXJUZ/P0o=" }, - { - "pname": "Microsoft.NET.Test.Sdk", - "version": "17.14.1", - "hash": "sha256-mZUzDFvFp7x1nKrcnRd0hhbNu5g8EQYt8SKnRgdhT/A=" - }, { "pname": "Microsoft.OpenApi", "version": "1.6.23", "hash": "sha256-YD2oxM/tlNpK5xUeHF85xdqcpBzHioUSyRjpN2A7KcY=" }, - { - "pname": "Microsoft.Testing.Extensions.Telemetry", - "version": "1.9.0", - "hash": "sha256-JT91ThKLEyoRS/8ZJqZwlSTT7ofC2QhNqPFI3pYmMaw=" - }, - { - "pname": "Microsoft.Testing.Extensions.TrxReport.Abstractions", - "version": "1.9.0", - "hash": "sha256-oscZOEKw7gM6eRdDrOS3x+CwqIvXWRmfmi0ugCxBRw0=" - }, - { - "pname": "Microsoft.Testing.Extensions.VSTestBridge", - "version": "1.9.0", - "hash": "sha256-CadXLWD093sUDaWhnppzD9LvpxSRqqt93ZEOFiIAPyw=" - }, - { - "pname": "Microsoft.Testing.Platform", - "version": "1.9.0", - "hash": "sha256-6nzjoYbJOh7v/GB7d+TDuM0l/xglCshFX6KWjg7+cFI=" - }, - { - "pname": "Microsoft.Testing.Platform.MSBuild", - "version": "1.9.0", - "hash": "sha256-/bileP4b+9RZp8yjgS6eynXwc2mohyyzf6p/0LZJd8I=" - }, - { - "pname": "Microsoft.TestPlatform.AdapterUtilities", - "version": "17.13.0", - "hash": "sha256-Vr+3Tad/h/nk7f/5HMExn3HvCGFCarehFAzJSfCBaOc=" - }, - { - "pname": "Microsoft.TestPlatform.ObjectModel", - "version": "17.13.0", - "hash": "sha256-6S0fjfj8vA+h6dJVNwLi6oZhYDO/I/6hBZaq2VTW+Uk=" - }, - { - "pname": "Microsoft.TestPlatform.ObjectModel", - "version": "17.14.1", - "hash": "sha256-QMf6O+w0IT+16Mrzo7wn+N20f3L1/mDhs/qjmEo1rYs=" - }, - { - "pname": "Microsoft.TestPlatform.TestHost", - "version": "17.14.1", - "hash": "sha256-1cxHWcvHRD7orQ3EEEPPxVGEkTpxom1/zoICC9SInJs=" - }, - { - "pname": "Moq", - "version": "4.20.72", - "hash": "sha256-+uAc/6xtzij9YnmZrhZwc+4vUgx6cppZsWQli3CGQ8o=" - }, - { - "pname": "Newtonsoft.Json", - "version": "13.0.3", - "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" - }, { "pname": "Newtonsoft.Json", "version": "13.0.4", @@ -356,28 +176,13 @@ }, { "pname": "NSwag.ApiDescription.Client", - "version": "13.20.0", - "hash": "sha256-r/BtE46yFdM9MuoaVYNhO7vvdBICDsM8ROXZldxFIeY=" + "version": "14.6.3", + "hash": "sha256-razR+CaeTvCob8IaRkg9MKgfcChqAqjBa8At05V9lxQ=" }, { "pname": "NSwag.MSBuild", - "version": "13.20.0", - "hash": "sha256-HarUF6peOsd12saco8+Na4TnOEh+Gl2MJelSfnBVRhQ=" - }, - { - "pname": "NUnit", - "version": "4.4.0", - "hash": "sha256-5geF5QOF+X/WkuCEgkPVKH4AdKx4U0olpU07S8+G3nU=" - }, - { - "pname": "NUnit.Analyzers", - "version": "4.10.0", - "hash": "sha256-wkThcI2ratJoCnstOIj/jB5muGQbdDPFbRK1r7PHEBU=" - }, - { - "pname": "NUnit3TestAdapter", - "version": "5.2.0", - "hash": "sha256-ybTutL4VkX/fq61mS+O3Ruh+adic4fpv+MKgQ0IZvGg=" + "version": "14.6.3", + "hash": "sha256-6hzKfptXAXCCs2nM1UuN4cSBzZxDVoFWvFt5ypOTDxw=" }, { "pname": "OpenWeatherMap.API", @@ -404,46 +209,11 @@ "version": "8.1.4", "hash": "sha256-zkVzBxkxGh5WyhFEOiZknez9GBeBKXTH2ySf2/BnSV4=" }, - { - "pname": "System.Collections.Immutable", - "version": "8.0.0", - "hash": "sha256-F7OVjKNwpqbUh8lTidbqJWYi476nsq9n+6k0+QVRo3w=" - }, - { - "pname": "System.Diagnostics.DiagnosticSource", - "version": "5.0.0", - "hash": "sha256-6mW3N6FvcdNH/pB58pl+pFSCGWgyaP4hfVtC/SMWDV4=" - }, { "pname": "System.Diagnostics.DiagnosticSource", "version": "9.0.5", "hash": "sha256-fB8970CWgKWI1UwAaDa9D2yaMUiQ74ULGU7GMsr2u/o=" }, - { - "pname": "System.Diagnostics.EventLog", - "version": "6.0.0", - "hash": "sha256-zUXIQtAFKbiUMKCrXzO4mOTD5EUphZzghBYKXprowSM=" - }, - { - "pname": "System.Diagnostics.EventLog", - "version": "8.0.1", - "hash": "sha256-zvqd72pwgcGoa1nH3ZT1C0mP9k53vFLJ69r5MCQ1saA=" - }, - { - "pname": "System.IO.Pipelines", - "version": "8.0.0", - "hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE=" - }, - { - "pname": "System.Reflection.Metadata", - "version": "1.6.0", - "hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E=" - }, - { - "pname": "System.Reflection.Metadata", - "version": "8.0.0", - "hash": "sha256-dQGC30JauIDWNWXMrSNOJncVa1umR1sijazYwUDdSIE=" - }, { "pname": "System.Runtime.CompilerServices.Unsafe", "version": "6.0.0", diff --git a/pkgs/by-name/im/immichframe/package.nix b/pkgs/by-name/im/immichframe/package.nix index 3605a12a4d70..e7814daea7fb 100644 --- a/pkgs/by-name/im/immichframe/package.nix +++ b/pkgs/by-name/im/immichframe/package.nix @@ -11,12 +11,12 @@ }: let - version = "1.0.29.0"; + version = "1.0.33.0"; src = fetchFromGitHub { owner = "immichFrame"; repo = "immichFrame"; rev = "v${version}"; - hash = "sha256-YFh+/QWYYtQzBVJUyUuhhKqi9/5waWVX+lw/tov++ws="; + hash = "sha256-b8hfzNZJz9XCRO4UfzwK5OsrgqV2F5wnZlRH7h3Eo9Q="; }; api = buildDotnetModule { @@ -36,7 +36,7 @@ let sourceRoot = "${src.name}/immichFrame.Web"; npmBuildScript = "build"; - npmDepsHash = "sha256-eOv3DlmHaI6hVCYTBzCtLWKD72/RM/KjCUDVUgb9jcg="; + npmDepsHash = "sha256-PjbbBpYYUHH4oucJuk0FCdJa0LzTlkQnjkZ5MLziqTY="; installPhase = '' runHook preInstall From 68872307f176046b55d171e7518753e385662462 Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Fri, 8 May 2026 21:37:00 -0700 Subject: [PATCH 3/3] immichframe: use `tag` instead of `rev` --- pkgs/by-name/im/immichframe/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/im/immichframe/package.nix b/pkgs/by-name/im/immichframe/package.nix index e7814daea7fb..85e12a626778 100644 --- a/pkgs/by-name/im/immichframe/package.nix +++ b/pkgs/by-name/im/immichframe/package.nix @@ -15,7 +15,7 @@ let src = fetchFromGitHub { owner = "immichFrame"; repo = "immichFrame"; - rev = "v${version}"; + tag = "v${version}"; hash = "sha256-b8hfzNZJz9XCRO4UfzwK5OsrgqV2F5wnZlRH7h3Eo9Q="; };