From 138eb86862f4adbc1fbae1b07b15a8f140338e6b Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Wed, 22 Oct 2025 01:33:53 +0100 Subject: [PATCH 1/2] =?UTF-8?q?nexusmods-app:=200.18.2=20=E2=86=92=200.19.?= =?UTF-8?q?4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.19.4 Backports a critical SMAPI fix: https://github.com/Nexus-Mods/NexusMods.App/pull/4026 --- pkgs/by-name/ne/nexusmods-app/deps.json | 81 +++++-------------- pkgs/by-name/ne/nexusmods-app/package.nix | 18 ++++- .../ne/nexusmods-app/vendored/games.json | 38 ++++----- 3 files changed, 53 insertions(+), 84 deletions(-) diff --git a/pkgs/by-name/ne/nexusmods-app/deps.json b/pkgs/by-name/ne/nexusmods-app/deps.json index 8a7000283848..07856e2cbb8f 100644 --- a/pkgs/by-name/ne/nexusmods-app/deps.json +++ b/pkgs/by-name/ne/nexusmods-app/deps.json @@ -1926,23 +1926,23 @@ }, { "pname": "NexusMods.HyperDuck", - "version": "0.28.0", - "hash": "sha256-vJW/9DbnSIzxH6CR1CzMru0w/BA7HwxuJ0TiKt6NgcQ=" + "version": "0.28.2", + "hash": "sha256-VErxX62rvY5MA9LGyBcKi1BCgtgzOo4rgWTRczFNrVY=" }, { "pname": "NexusMods.MnemonicDB", - "version": "0.28.0", - "hash": "sha256-AzSzn2mdp4sx1ntOfm03kWlfo/mxxURcEMmChxSyEAI=" + "version": "0.28.2", + "hash": "sha256-l6b1r0swnRfqAIk7WvdQv0VaekFRXENhZqEL9ut4AT0=" }, { "pname": "NexusMods.MnemonicDB.Abstractions", - "version": "0.28.0", - "hash": "sha256-c6hEojlKk8B//lpEyxrYBy/QlpixzDE4LJq+sk4XZDY=" + "version": "0.28.2", + "hash": "sha256-HJsnz1nQeUG4iln+WDkR3SMEalYM47Z8vdYZf8V+RIU=" }, { "pname": "NexusMods.MnemonicDB.SourceGenerator", - "version": "0.28.0", - "hash": "sha256-o888EyOAzDypNzhZTtW8BZp0Ew/fOUsho6IeBbGlmNM=" + "version": "0.28.2", + "hash": "sha256-vmOO/qImh5RrWC3U11D5A4Gd2SvOJvuoDID+b5fI+cA=" }, { "pname": "NexusMods.Paths", @@ -1969,51 +1969,6 @@ "version": "0.20.0", "hash": "sha256-k+1dgCZEuEO8xVfdwGKec+FgE//FX1xqIyiyPGYypF0=" }, - { - "pname": "Nito.AsyncEx", - "version": "5.1.2", - "hash": "sha256-9o4YLWAHSeApF4E/qNFyaZPh/V9N5JSeF32uquukb5I=" - }, - { - "pname": "Nito.AsyncEx.Context", - "version": "5.1.2", - "hash": "sha256-7BCVYJgZyU2/Z4r8CKajorlzajr6GBUBAbY3AcswPC0=" - }, - { - "pname": "Nito.AsyncEx.Coordination", - "version": "5.1.2", - "hash": "sha256-NHMnIBkGzzuoZL0qHKAwFC35doB08IDvmCQptC2uu2s=" - }, - { - "pname": "Nito.AsyncEx.Interop.WaitHandles", - "version": "5.1.2", - "hash": "sha256-1DgBWnkYggWQk0w2g7Y24Ogl7TJ7bQkc/0NIUFJzN00=" - }, - { - "pname": "Nito.AsyncEx.Oop", - "version": "5.1.2", - "hash": "sha256-1hnCagbt6SLbn+RpasWdBH3pLvqm8kC2Ut2iG75OUMM=" - }, - { - "pname": "Nito.AsyncEx.Tasks", - "version": "5.1.2", - "hash": "sha256-W5jxZZ0pbPHte6TkWTq4FDtHOejvlrdyb1Inw+Yhl4c=" - }, - { - "pname": "Nito.Cancellation", - "version": "1.1.2", - "hash": "sha256-oZKZUymYJiM2AfMpX4pX0FIlut0lEWdy250iVX0w+is=" - }, - { - "pname": "Nito.Collections.Deque", - "version": "1.1.1", - "hash": "sha256-6Pmz6XQ+rY32O21Z3cUDVQsLH+i53LId18UCPTAxRZQ=" - }, - { - "pname": "Nito.Disposables", - "version": "2.2.1", - "hash": "sha256-FKDLUWysqroSHLU2kLjK1m0g417AAPh6n2TIkwiapcM=" - }, { "pname": "NLog", "version": "6.0.3", @@ -2689,11 +2644,6 @@ "version": "4.3.0", "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" }, - { - "pname": "System.Collections.Immutable", - "version": "1.7.1", - "hash": "sha256-WMMAUqoxT3J1gW9DI8v31VAuhwqTc4Posose5jq1BNo=" - }, { "pname": "System.Collections.Immutable", "version": "5.0.0", @@ -3069,6 +3019,11 @@ "version": "5.0.0", "hash": "sha256-M5Z8pw8rVb8ilbnTdaOptzk5VFd5DlKa7zzCpuytTtE=" }, + { + "pname": "System.Reactive", + "version": "6.0.0", + "hash": "sha256-hXB18OsiUHSCmRF3unAfdUEcbXVbG6/nZxcyz13oe9Y=" + }, { "pname": "System.Reactive", "version": "6.0.1", @@ -3194,11 +3149,6 @@ "version": "4.3.0", "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" }, - { - "pname": "System.Runtime.CompilerServices.Unsafe", - "version": "4.4.0", - "hash": "sha256-SeTI4+yVRO2SmAKgOrMni4070OD+Oo8L1YiEVeKDyig=" - }, { "pname": "System.Runtime.CompilerServices.Unsafe", "version": "4.5.3", @@ -3564,6 +3514,11 @@ "version": "2.5.0", "hash": "sha256-i9TpQJ2+JhSQ7RXkdmC6pkND32V4cLyEaPLGrD/EpYk=" }, + { + "pname": "Verify.TUnit", + "version": "30.11.0", + "hash": "sha256-xuP2oetSNIBhCzt7go3S2Icy8wy3pBseq4XcEMMrDV8=" + }, { "pname": "Verify.Xunit", "version": "30.11.0", diff --git a/pkgs/by-name/ne/nexusmods-app/package.nix b/pkgs/by-name/ne/nexusmods-app/package.nix index 5bcea550ddf8..29bd3c391a52 100644 --- a/pkgs/by-name/ne/nexusmods-app/package.nix +++ b/pkgs/by-name/ne/nexusmods-app/package.nix @@ -5,6 +5,7 @@ desktop-file-utils, dotnetCorePackages, fetchFromGitHub, + fetchpatch2, imagemagick, lib, xdg-utils, @@ -22,13 +23,13 @@ let in buildDotnetModule (finalAttrs: { inherit pname; - version = "0.18.2"; + version = "0.19.4"; src = fetchFromGitHub { owner = "Nexus-Mods"; repo = "NexusMods.App"; tag = "v${finalAttrs.version}"; - hash = "sha256-+ayYRNclxbBedH6gIWTh5wI/AIvMzSq4x5fQXzxOT5c="; + hash = "sha256-WKfv5y6UmO3dmzkXrqZ+VtIbXf0FszRdsa5Rmp95rYg="; fetchSubmodules = true; }; @@ -56,10 +57,23 @@ buildDotnetModule (finalAttrs: { dotnet-sdk = dotnetCorePackages.sdk_9_0; dotnet-runtime = dotnetCorePackages.runtime_9_0; + patches = [ + (fetchpatch2 { + name = "Fix-SMAPI-installation.patch"; + url = "https://github.com/Nexus-Mods/NexusMods.App/pull/4026.patch?full_index=1"; + hash = "sha256-1LgFTi63fVhGUZXZtS6iD2yqd0RxhdpiXKtWMFNEoD4="; + }) + ]; + postPatch = '' # for some reason these tests fail (intermittently?) with a zero timestamp touch tests/NexusMods.UI.Tests/WorkspaceSystem/*.verified.png + # Fix expected version number in text fixture + # https://github.com/Nexus-Mods/NexusMods.App/issues/4030 + substituteInPlace tests/NexusMods.Backend.Tests/EventTrackerTests.Test_PrepareRequest.verified.txt \ + --replace-fail 0.0.1 ${finalAttrs.version} + # Specify a fixed date to improve build reproducibility echo "1970-01-01T00:00:00Z" >buildDate.txt substituteInPlace src/NexusMods.Sdk/NexusMods.Sdk.csproj \ diff --git a/pkgs/by-name/ne/nexusmods-app/vendored/games.json b/pkgs/by-name/ne/nexusmods-app/vendored/games.json index 1ee7cae625b9..478145604579 100644 --- a/pkgs/by-name/ne/nexusmods-app/vendored/games.json +++ b/pkgs/by-name/ne/nexusmods-app/vendored/games.json @@ -6,12 +6,12 @@ "forum_url": "https://forums.nexusmods.com/games/19-stardew-valley/", "nexusmods_url": "https://www.nexusmods.com/stardewvalley", "genre": "Simulation", - "file_count": 141993, - "downloads": 619854329, + "file_count": 143212, + "downloads": 627187655, "domain_name": "stardewvalley", "approved_date": 1457432329, - "mods": 25658, - "collections": 2049 + "mods": 25945, + "collections": 2020 }, { "id": 1704, @@ -20,12 +20,12 @@ "forum_url": "https://forums.nexusmods.com/games/6-skyrim/", "nexusmods_url": "https://www.nexusmods.com/skyrimspecialedition", "genre": "RPG", - "file_count": 656636, - "downloads": 9072303822, + "file_count": 661698, + "downloads": 9193533035, "domain_name": "skyrimspecialedition", "approved_date": 1477480498, - "mods": 117768, - "collections": 4872 + "mods": 118807, + "collections": 4852 }, { "id": 3174, @@ -34,11 +34,11 @@ "forum_url": "https://forums.nexusmods.com/games/9-mount-blade-ii-bannerlord/", "nexusmods_url": "https://www.nexusmods.com/mountandblade2bannerlord", "genre": "Strategy", - "file_count": 50300, - "downloads": 115343239, + "file_count": 50603, + "downloads": 116400189, "domain_name": "mountandblade2bannerlord", "approved_date": 1582898627, - "mods": 6294, + "mods": 6341, "collections": 293 }, { @@ -48,12 +48,12 @@ "forum_url": "https://forums.nexusmods.com/games/1-cyberpunk-2077/", "nexusmods_url": "https://www.nexusmods.com/cyberpunk2077", "genre": "Action", - "file_count": 123906, - "downloads": 908587568, + "file_count": 125224, + "downloads": 930909718, "domain_name": "cyberpunk2077", "approved_date": 1607433331, - "mods": 17809, - "collections": 1602 + "mods": 18032, + "collections": 1588 }, { "id": 3474, @@ -62,11 +62,11 @@ "forum_url": "https://forums.nexusmods.com/games/2-baldurs-gate-3/", "nexusmods_url": "https://www.nexusmods.com/baldursgate3", "genre": "RPG", - "file_count": 104549, - "downloads": 345662936, + "file_count": 105632, + "downloads": 351591575, "domain_name": "baldursgate3", "approved_date": 1602863114, - "mods": 14843, - "collections": 1805 + "mods": 15020, + "collections": 1752 } ] From 40c8149187de143a4718f1a9215b71b2a8d0805b Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Wed, 22 Oct 2025 00:49:40 +0100 Subject: [PATCH 2/2] nexusmods-app: predicate test patches on `doCheck` Only bother with the test patches when `finalAttrs.doCheck` is true. --- pkgs/by-name/ne/nexusmods-app/package.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/ne/nexusmods-app/package.nix b/pkgs/by-name/ne/nexusmods-app/package.nix index 29bd3c391a52..5b993929fc93 100644 --- a/pkgs/by-name/ne/nexusmods-app/package.nix +++ b/pkgs/by-name/ne/nexusmods-app/package.nix @@ -66,14 +66,6 @@ buildDotnetModule (finalAttrs: { ]; postPatch = '' - # for some reason these tests fail (intermittently?) with a zero timestamp - touch tests/NexusMods.UI.Tests/WorkspaceSystem/*.verified.png - - # Fix expected version number in text fixture - # https://github.com/Nexus-Mods/NexusMods.App/issues/4030 - substituteInPlace tests/NexusMods.Backend.Tests/EventTrackerTests.Test_PrepareRequest.verified.txt \ - --replace-fail 0.0.1 ${finalAttrs.version} - # Specify a fixed date to improve build reproducibility echo "1970-01-01T00:00:00Z" >buildDate.txt substituteInPlace src/NexusMods.Sdk/NexusMods.Sdk.csproj \ @@ -86,6 +78,16 @@ buildDotnetModule (finalAttrs: { # Use a vendored version of the nexus API's games.json data substituteInPlace src/NexusMods.Networking.NexusWebApi/NexusMods.Networking.NexusWebApi.csproj \ --replace-fail '$(BaseIntermediateOutputPath)games.json' ${./vendored/games.json} + + ${lib.optionalString finalAttrs.doCheck '' + # For some reason these tests fail (intermittently?) with a zero timestamp + touch tests/NexusMods.UI.Tests/WorkspaceSystem/*.verified.png + + # Fix expected version number in text fixture + # https://github.com/Nexus-Mods/NexusMods.App/issues/4030 + substituteInPlace tests/NexusMods.Backend.Tests/EventTrackerTests.Test_PrepareRequest.verified.txt \ + --replace-fail 0.0.1 ${finalAttrs.version} + ''} ''; makeWrapperArgs = [