From 3495148bb03ba89a67430644d8aba012a49452b4 Mon Sep 17 00:00:00 2001 From: nanoyaki Date: Wed, 14 Jan 2026 18:01:47 +0100 Subject: [PATCH 1/4] luarenamer: init at 5.10.1 --- pkgs/by-name/lu/luarenamer/deps.json | 32 +++++++++++++++++ pkgs/by-name/lu/luarenamer/nozip.patch | 35 ++++++++++++++++++ pkgs/by-name/lu/luarenamer/package.nix | 49 ++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 pkgs/by-name/lu/luarenamer/deps.json create mode 100644 pkgs/by-name/lu/luarenamer/nozip.patch create mode 100644 pkgs/by-name/lu/luarenamer/package.nix diff --git a/pkgs/by-name/lu/luarenamer/deps.json b/pkgs/by-name/lu/luarenamer/deps.json new file mode 100644 index 000000000000..e2152a081e39 --- /dev/null +++ b/pkgs/by-name/lu/luarenamer/deps.json @@ -0,0 +1,32 @@ +[ + { + "pname": "KeraLua", + "version": "1.4.5", + "hash": "sha256-O3ozcLw1IVc6ssc3SZfPIvp5s0+xLyLuTZw6qrjyEyE=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "8.0.0", + "hash": "sha256-+qIDR8hRzreCHNEDtUcPfVHQdurzWPo/mqviCH78+EQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "8.0.0", + "hash": "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "8.0.0", + "hash": "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4=" + }, + { + "pname": "NLua", + "version": "1.7.5", + "hash": "sha256-1s8cc1RqKnfwafhxpBhOdkr8ZteNjt5fBN2sfLy4e5k=" + }, + { + "pname": "Shoko.Plugin.Abstractions", + "version": "5.2.0", + "hash": "sha256-tNLOeum4rc30OEWRiH1zTzLk5+1MfSEOfvkON1MU/SY=" + } +] diff --git a/pkgs/by-name/lu/luarenamer/nozip.patch b/pkgs/by-name/lu/luarenamer/nozip.patch new file mode 100644 index 000000000000..4275043d6611 --- /dev/null +++ b/pkgs/by-name/lu/luarenamer/nozip.patch @@ -0,0 +1,35 @@ +diff --git a/LuaRenamer/LuaRenamer.csproj b/LuaRenamer/LuaRenamer.csproj +index c4f0508..b9e001c 100644 +--- a/LuaRenamer/LuaRenamer.csproj ++++ b/LuaRenamer/LuaRenamer.csproj +@@ -33,30 +33,4 @@ + + + +- +- +- +- +- +- +- $([System.Text.RegularExpressions.Regex]::Match('$(GitInfo)', '\d+\.\d+\.\d+')) +- $(GitInfo) +- +- +- +- +- +- $(PublishDir)ZipDir/ +- $(PublishDir)../$(ProjectName)_$([MSBuild]::ValueOrDefault("$(RuntimeIdentifier)","Portable"))_$(GitInfo).zip +- +- +- +- +- +- +- +- +- +- +- + diff --git a/pkgs/by-name/lu/luarenamer/package.nix b/pkgs/by-name/lu/luarenamer/package.nix new file mode 100644 index 000000000000..a07b0d64f1fb --- /dev/null +++ b/pkgs/by-name/lu/luarenamer/package.nix @@ -0,0 +1,49 @@ +# SPDX-FileCopyrightText: 2025-2026 Hana Kretzer +# +# SPDX-License-Identifier: MIT +{ + lib, + buildDotnetModule, + fetchFromGitHub, + dotnet-sdk_8, + dotnet-aspnetcore_8, + nix-update-script, +}: + +buildDotnetModule (finalAttrs: { + pname = "luarenamer"; + version = "5.10.1"; + + src = fetchFromGitHub { + owner = "Mik1ll"; + repo = "LuaRenamer"; + tag = "v${finalAttrs.version}"; + hash = "sha256-ZN7o9q3APgc7vL+IRpk6Phd0Btpzyqdp53aoGp6sA8o="; + }; + + patches = [ + ./nozip.patch + ]; + + dotnet-sdk = dotnet-sdk_8; + dotnet-runtime = dotnet-aspnetcore_8; + + nugetDeps = ./deps.json; + projectFile = "LuaRenamer/LuaRenamer.csproj"; + + executables = [ ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://github.com/Mik1ll/LuaRenamer"; + changelog = "https://github.com/Mik1ll/LuaRenamer/releases/tag/${finalAttrs.src.tag}"; + description = "Plugin for Shoko that allows users to rename their collection using Lua"; + license = [ + lib.licenses.gpl3 + lib.licenses.lgpl3 + ]; + maintainers = with lib.maintainers; [ nanoyaki ]; + inherit (dotnet-sdk_8.meta) platforms; + }; +}) From d57e3195347570c6b19f2d4addd08c402a670376 Mon Sep 17 00:00:00 2001 From: nanoyaki Date: Wed, 14 Jan 2026 18:18:31 +0100 Subject: [PATCH 2/4] shoko: 5.1.0 -> 5.2.1 --- pkgs/by-name/sh/shoko/deps.json | 28 +++++++++------------------- pkgs/by-name/sh/shoko/package.nix | 4 ++-- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/sh/shoko/deps.json b/pkgs/by-name/sh/shoko/deps.json index 95bc329bc12d..b6a073b86b27 100644 --- a/pkgs/by-name/sh/shoko/deps.json +++ b/pkgs/by-name/sh/shoko/deps.json @@ -46,13 +46,13 @@ }, { "pname": "Magick.NET-Q8-AnyCPU", - "version": "13.6.0", - "hash": "sha256-LzHv4Acau5YKP3mnqHY3S9b4TL/xZAr+LqlJkzictPA=" + "version": "14.9.1", + "hash": "sha256-4svX77hA0bfAo9Lbbks6RfAwB4DbUI8mwduMbmyaEfQ=" }, { "pname": "Magick.NET.Core", - "version": "13.6.0", - "hash": "sha256-9y7fLtgmWc830XbH6Vfj61H9W/DGqBqv+tIrg1L9U2c=" + "version": "14.9.1", + "hash": "sha256-FkFcEeK08Jrp9y1znQzy4uyW6sMU1bVi3s5e5em2of4=" }, { "pname": "MessagePack", @@ -299,6 +299,11 @@ "version": "1.1.1", "hash": "sha256-fAcX4sxE0veWM1CZBtXR/Unky+6sE33yrV7ohrWGKig=" }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "8.0.0", + "hash": "sha256-9aWmiwMJKrKr9ohD1KSuol37y+jdDxPGJct3m2/Bknw=" + }, { "pname": "Microsoft.CodeAnalysis.Analyzers", "version": "3.3.4", @@ -1219,11 +1224,6 @@ "version": "1.4.2", "hash": "sha256-/giVqikworG2XKqfN9uLyjUSXr35zBuZ2FX2r8X/WUY=" }, - { - "pname": "Shoko.Plugin.Abstractions", - "version": "4.0.0-beta5", - "hash": "sha256-Tc3cOHkEFjaqWTdHvAscMUfOawH5fc93/u2ztXWGtSc=" - }, { "pname": "SQLitePCLRaw.bundle_e_sqlite3", "version": "2.1.6", @@ -1294,11 +1294,6 @@ "version": "4.5.0", "hash": "sha256-THw2znu+KibfJRfD7cE3nRYHsm7Fyn5pjOOZVonFjvs=" }, - { - "pname": "System.Buffers", - "version": "4.5.1", - "hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI=" - }, { "pname": "System.ClientModel", "version": "1.0.0", @@ -1624,11 +1619,6 @@ "version": "4.5.1", "hash": "sha256-5g6C2vb0RCUiSBw/tlCUbmrIbCvT9zQ+w/45o3l6Ctg=" }, - { - "pname": "System.Numerics.Vectors", - "version": "4.4.0", - "hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U=" - }, { "pname": "System.Numerics.Vectors", "version": "4.5.0", diff --git a/pkgs/by-name/sh/shoko/package.nix b/pkgs/by-name/sh/shoko/package.nix index 8de64de5b0cb..d2424c5d1d08 100644 --- a/pkgs/by-name/sh/shoko/package.nix +++ b/pkgs/by-name/sh/shoko/package.nix @@ -12,13 +12,13 @@ buildDotnetModule (finalAttrs: { pname = "shoko"; - version = "5.1.0"; + version = "5.2.1"; src = fetchFromGitHub { owner = "ShokoAnime"; repo = "ShokoServer"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZO5S0zMwzr4giaO1bmQ4dLBIPrv6eZY7k9Os4GiO4C4="; + hash = "sha256-V8DwYLjxklKYmOnYNLp51GRJXgOXKnbgDD4DL4T4lVc="; fetchSubmodules = true; }; From 38472e8c153bbf08d60207ac531a397919a9f76d Mon Sep 17 00:00:00 2001 From: nanoyaki Date: Wed, 14 Jan 2026 21:52:56 +0100 Subject: [PATCH 3/4] shoko-webui: 2.2.0 -> 2.4.1 --- pkgs/by-name/sh/shoko-webui/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sh/shoko-webui/package.nix b/pkgs/by-name/sh/shoko-webui/package.nix index e429a3d59682..b537f3d6e6d3 100644 --- a/pkgs/by-name/sh/shoko-webui/package.nix +++ b/pkgs/by-name/sh/shoko-webui/package.nix @@ -11,13 +11,13 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "shoko-webui"; - version = "2.2.0"; + version = "2.4.1"; src = fetchFromGitHub { owner = "ShokoAnime"; repo = "Shoko-WebUI"; tag = "v${finalAttrs.version}"; - hash = "sha256-plXTAN3V0tcAe+uMs4XwYHO1UC9DCAxcMPVNKdFobcY="; + hash = "sha256-/frP6qI5xAmogb5a5AA83IJxgOhVUi6X0E4h3Qg5u6w="; }; # Avoid requiring git as a build time dependency. It's used for version @@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; fetcherVersion = 3; - hash = "sha256-4/Qbg+jUagPUiQPoc57drorbEkn1ShsPZynvct+HX7A="; + hash = "sha256-rTlem83dFptgvKUKUaHK8vi5B0FBehPFtkCUhOnUKd0="; }; nativeBuildInputs = [ From cc4e0f0649aceadf63da48554fab7750ea1c6668 Mon Sep 17 00:00:00 2001 From: nanoyaki Date: Wed, 14 Jan 2026 18:21:22 +0100 Subject: [PATCH 4/4] shoko: add plugin test --- nixos/tests/all-tests.nix | 2 +- nixos/tests/shoko.nix | 58 +++++++++++++++++++++++-------- pkgs/by-name/sh/shoko/package.nix | 2 +- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 957882749b9a..60c3e7f02541 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1418,7 +1418,7 @@ in sharkey = runTest ./web-apps/sharkey.nix; shattered-pixel-dungeon = runTest ./shattered-pixel-dungeon.nix; shiori = runTest ./shiori.nix; - shoko = runTest ./shoko.nix; + shoko = import ./shoko.nix { inherit runTest; }; signal-desktop = runTest ./signal-desktop.nix; silverbullet = runTest ./silverbullet.nix; simple = runTest ./simple.nix; diff --git a/nixos/tests/shoko.nix b/nixos/tests/shoko.nix index 2d464d45d8ab..dfddc19b83c5 100644 --- a/nixos/tests/shoko.nix +++ b/nixos/tests/shoko.nix @@ -1,19 +1,49 @@ -{ lib, ... }: +{ runTest }: + { - name = "Shoko"; + default = runTest ( + { lib, ... }: - nodes.machine = { - services.shoko.enable = true; - }; + { + name = "Shoko"; - testScript = '' - machine.wait_for_unit("shoko.service") - machine.wait_for_open_port(8111) - machine.succeed("curl --fail http://localhost:8111") - ''; + nodes.machine = { + services.shoko.enable = true; + }; - meta.maintainers = with lib.maintainers; [ - diniamo - nanoyaki - ]; + testScript = '' + machine.wait_for_unit("shoko.service") + machine.wait_for_open_port(8111) + machine.succeed("curl --fail http://localhost:8111") + ''; + + meta.maintainers = with lib.maintainers; [ + diniamo + nanoyaki + ]; + } + ); + + withPlugins = runTest ( + { pkgs, lib, ... }: + + { + name = "Shoko with plugins"; + + nodes.machine = { + services.shoko = { + enable = true; + plugins = [ pkgs.luarenamer ]; + }; + }; + + testScript = '' + machine.wait_for_unit("shoko.service") + machine.wait_for_open_port(8111) + machine.succeed("curl --fail http://localhost:8111") + ''; + + meta.maintainers = with lib.maintainers; [ nanoyaki ]; + } + ); } diff --git a/pkgs/by-name/sh/shoko/package.nix b/pkgs/by-name/sh/shoko/package.nix index d2424c5d1d08..ac4db1f494bb 100644 --- a/pkgs/by-name/sh/shoko/package.nix +++ b/pkgs/by-name/sh/shoko/package.nix @@ -46,7 +46,7 @@ buildDotnetModule (finalAttrs: { ]; }; - tests.shoko = nixosTests.shoko; + tests = { inherit (nixosTests) shoko; }; }; meta = {