diff --git a/nixos/modules/services/web-apps/misskey.nix b/nixos/modules/services/web-apps/misskey.nix index c601943479cf..e02e4106a5ad 100644 --- a/nixos/modules/services/web-apps/misskey.nix +++ b/nixos/modules/services/web-apps/misskey.nix @@ -328,6 +328,9 @@ in }; preStart = '' install -m 700 ${settingsFormat.generate "misskey-config.yml" cfg.settings} /run/misskey/default.yml + install -m 700 ${ + (pkgs.formats.json { }).generate "misskey-config.json" cfg.settings + } /run/misskey/default.json '' + (lib.optionalString (cfg.database.passwordFile != null) '' ${pkgs.replace-secret}/bin/replace-secret '@DATABASE_PASSWORD@' "${cfg.database.passwordFile}" /run/misskey/default.yml diff --git a/pkgs/by-name/mi/misskey/package.nix b/pkgs/by-name/mi/misskey/package.nix index c6a90bde5c48..d9fa43dc2963 100644 --- a/pkgs/by-name/mi/misskey/package.nix +++ b/pkgs/by-name/mi/misskey/package.nix @@ -3,7 +3,7 @@ lib, nixosTests, fetchFromGitHub, - gitUpdater, + nix-update-script, nodejs, pnpm_9, fetchPnpmDeps, @@ -18,19 +18,29 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "misskey"; - version = "2025.7.0"; + version = "2025.12.2"; src = fetchFromGitHub { owner = "misskey-dev"; repo = "misskey"; tag = finalAttrs.version; - hash = "sha256-LtBggq60buNPnGPSbh+TcFODxCoqX+rFdX0P7dYMYI0="; + hash = "sha256-7S6m97wHFeITABLcnQiPVGLg6d1xcPCHCp7/7d/w48E="; fetchSubmodules = true; }; - patches = [ - ./pnpm-lock.yaml.patch - ]; + # Misskey converts its YAML config to JSON at runtime, which doesn't work + # because it tries to write it to the Nix store. As a workaround, hardcode + # this to a path which the service can write to until a better solution is + # supported, upstream. + # https://github.com/misskey-dev/misskey/issues/17075 + postPatch = '' + substituteInPlace packages/backend/src/config.ts \ + --replace-fail \ + "resolve(_dirname, '../../../built/.config.json')" \ + "resolve('/run/misskey/default.json')" + substituteInPlace {.,packages/backend}/package.json \ + --replace-fail "pnpm compile-config && " "" + ''; nativeBuildInputs = [ nodejs @@ -47,11 +57,10 @@ stdenv.mkDerivation (finalAttrs: { pname version src - patches ; pnpm = pnpm_9; fetcherVersion = 2; - hash = "sha256-5yuM56sLDSo4M5PDl3gUZOdSexW1YjfYBR3BJMqNHzU="; + hash = "sha256-GVzU5YQe7GHn2ddpaGPyLLmhOv5Fy33RL+gBLl3Oyis="; }; buildPhase = '' @@ -88,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: { fi ''; in + # bash '' runHook preInstall @@ -125,7 +135,12 @@ stdenv.mkDerivation (finalAttrs: { passthru = { tests.misskey = nixosTests.misskey; - updateScript = gitUpdater { }; + updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "^([0-9.]+)$" + ]; + }; }; meta = { diff --git a/pkgs/by-name/mi/misskey/pnpm-lock.yaml.patch b/pkgs/by-name/mi/misskey/pnpm-lock.yaml.patch deleted file mode 100644 index a3db65c7e052..000000000000 --- a/pkgs/by-name/mi/misskey/pnpm-lock.yaml.patch +++ /dev/null @@ -1,270 +0,0 @@ ---- a/pnpm-lock.yaml -+++ b/pnpm-lock.yaml -@@ -11,7 +11,7 @@ - - patchedDependencies: - typeorm: -- hash: 2677b97a423e157945c154e64183d3ae2eb44dfa9cb0e5ce731a7612f507bb56 -+ hash: i7ls76affxbomopkwkccq5jvsu - path: patches/typeorm.patch - - importers: -@@ -51,6 +51,10 @@ - typescript: - specifier: 5.8.3 - version: 5.8.3 -+ optionalDependencies: -+ '@tensorflow/tfjs-core': -+ specifier: 4.22.0 -+ version: 4.22.0(encoding@0.1.13) - devDependencies: - '@misskey-dev/eslint-plugin': - specifier: 2.1.0 -@@ -85,10 +89,6 @@ - start-server-and-test: - specifier: 2.0.12 - version: 2.0.12 -- optionalDependencies: -- '@tensorflow/tfjs-core': -- specifier: 4.22.0 -- version: 4.22.0(encoding@0.1.13) - - packages/backend: - dependencies: -@@ -427,7 +427,7 @@ - version: 4.2.0 - typeorm: - specifier: 0.3.24 -- version: 0.3.24(patch_hash=2677b97a423e157945c154e64183d3ae2eb44dfa9cb0e5ce731a7612f507bb56)(ioredis@5.6.1)(pg@8.16.0)(reflect-metadata@0.2.2) -+ version: 0.3.24(patch_hash=i7ls76affxbomopkwkccq5jvsu)(ioredis@5.6.1)(pg@8.16.0)(reflect-metadata@0.2.2) - typescript: - specifier: 5.8.3 - version: 5.8.3 -@@ -446,6 +446,94 @@ - xev: - specifier: 3.0.2 - version: 3.0.2 -+ optionalDependencies: -+ '@swc/core-android-arm64': -+ specifier: 1.3.11 -+ version: 1.3.11 -+ '@swc/core-darwin-arm64': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-darwin-x64': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-freebsd-x64': -+ specifier: 1.3.11 -+ version: 1.3.11 -+ '@swc/core-linux-arm-gnueabihf': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-linux-arm64-gnu': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-linux-arm64-musl': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-linux-x64-gnu': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-linux-x64-musl': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-win32-arm64-msvc': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-win32-ia32-msvc': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@swc/core-win32-x64-msvc': -+ specifier: 1.12.0 -+ version: 1.12.0 -+ '@tensorflow/tfjs': -+ specifier: 4.22.0 -+ version: 4.22.0(encoding@0.1.13)(seedrandom@3.0.5) -+ '@tensorflow/tfjs-node': -+ specifier: 4.22.0 -+ version: 4.22.0(encoding@0.1.13)(seedrandom@3.0.5) -+ bufferutil: -+ specifier: 4.0.9 -+ version: 4.0.9 -+ slacc-android-arm-eabi: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-android-arm64: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-darwin-arm64: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-darwin-universal: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-darwin-x64: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-freebsd-x64: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-linux-arm-gnueabihf: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-linux-arm64-gnu: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-linux-arm64-musl: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-linux-x64-gnu: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-linux-x64-musl: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-win32-arm64-msvc: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ slacc-win32-x64-msvc: -+ specifier: 0.0.10 -+ version: 0.0.10 -+ utf-8-validate: -+ specifier: 6.0.5 -+ version: 6.0.5 - devDependencies: - '@jest/globals': - specifier: 29.7.0 -@@ -612,94 +700,6 @@ - supertest: - specifier: 7.1.1 - version: 7.1.1 -- optionalDependencies: -- '@swc/core-android-arm64': -- specifier: 1.3.11 -- version: 1.3.11 -- '@swc/core-darwin-arm64': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-darwin-x64': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-freebsd-x64': -- specifier: 1.3.11 -- version: 1.3.11 -- '@swc/core-linux-arm-gnueabihf': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-linux-arm64-gnu': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-linux-arm64-musl': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-linux-x64-gnu': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-linux-x64-musl': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-win32-arm64-msvc': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-win32-ia32-msvc': -- specifier: 1.12.0 -- version: 1.12.0 -- '@swc/core-win32-x64-msvc': -- specifier: 1.12.0 -- version: 1.12.0 -- '@tensorflow/tfjs': -- specifier: 4.22.0 -- version: 4.22.0(encoding@0.1.13)(seedrandom@3.0.5) -- '@tensorflow/tfjs-node': -- specifier: 4.22.0 -- version: 4.22.0(encoding@0.1.13)(seedrandom@3.0.5) -- bufferutil: -- specifier: 4.0.9 -- version: 4.0.9 -- slacc-android-arm-eabi: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-android-arm64: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-darwin-arm64: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-darwin-universal: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-darwin-x64: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-freebsd-x64: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-linux-arm-gnueabihf: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-linux-arm64-gnu: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-linux-arm64-musl: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-linux-x64-gnu: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-linux-x64-musl: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-win32-arm64-msvc: -- specifier: 0.0.10 -- version: 0.0.10 -- slacc-win32-x64-msvc: -- specifier: 0.0.10 -- version: 0.0.10 -- utf-8-validate: -- specifier: 6.0.5 -- version: 6.0.5 - - packages/frontend: - dependencies: -@@ -11221,8 +11221,8 @@ - vue-component-type-helpers@2.2.12: - resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} - -- vue-component-type-helpers@3.0.1: -- resolution: {integrity: sha512-j23mCB5iEbGsyIhnVdXdWUOg+UdwmVxpKnYYf2j+4ppCt5VSFXKjwu9YFt0QYxUaf5G99PuHsVfRScjHCRSsGQ==} -+ vue-component-type-helpers@3.0.3: -+ resolution: {integrity: sha512-koiBu7lO8e6w/UlbZAAIW11qcFQocYIl7Nh/SVwGZ804ej5KrncU32bRxi2zfU2Kyf6HWuk1CeeVP2rhIL+vyQ==} - - vue-demi@0.14.7: - resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} -@@ -14955,7 +14955,7 @@ - ts-dedent: 2.2.0 - type-fest: 2.19.0 - vue: 3.5.17(typescript@5.8.3) -- vue-component-type-helpers: 3.0.1 -+ vue-component-type-helpers: 3.0.3 - - '@stylistic/eslint-plugin@2.13.0(eslint@9.31.0)(typescript@5.8.3)': - dependencies: -@@ -23034,7 +23034,7 @@ - - typedarray@0.0.6: {} - -- typeorm@0.3.24(patch_hash=2677b97a423e157945c154e64183d3ae2eb44dfa9cb0e5ce731a7612f507bb56)(ioredis@5.6.1)(pg@8.16.0)(reflect-metadata@0.2.2): -+ typeorm@0.3.24(patch_hash=i7ls76affxbomopkwkccq5jvsu)(ioredis@5.6.1)(pg@8.16.0)(reflect-metadata@0.2.2): - dependencies: - '@sqltools/formatter': 1.2.5 - ansis: 3.17.0 -@@ -23371,7 +23371,7 @@ - - vue-component-type-helpers@2.2.12: {} - -- vue-component-type-helpers@3.0.1: {} -+ vue-component-type-helpers@3.0.3: {} - - vue-demi@0.14.7(vue@3.5.17(typescript@5.8.3)): - dependencies: