From 5f7a35a9b36bfc2a6d41a568bb797e46bd237abd Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Tue, 7 Jul 2026 12:15:00 +0200 Subject: [PATCH] remark42: switch to pnpm_9 pnpm_10 and later do not support the old lockfile format used by remark42. A future version will be compatible with pnpm 10 at least: https://github.com/umputun/remark42/commit/f5ccfaa0e1f6f9107ad1e21bcc3ef56cba192595 Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/re/remark42/package.nix | 42 +++++++++++++++++++--------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/re/remark42/package.nix b/pkgs/by-name/re/remark42/package.nix index df1192589b50..c461a9aae6d5 100644 --- a/pkgs/by-name/re/remark42/package.nix +++ b/pkgs/by-name/re/remark42/package.nix @@ -3,14 +3,15 @@ stdenv, fetchFromGitHub, buildGoModule, - nodejs_22, - pnpm_8, + nodejs-slim_22, + pnpm_9, fetchPnpmDeps, pnpmConfigHook, testers, }: let + pnpm = pnpm_9.override { nodejs-slim = nodejs-slim_22; }; version = "1.15.0"; src = fetchFromGitHub { @@ -26,34 +27,49 @@ let strictDeps = true; - pnpmRoot = "frontend"; + sourceRoot = "${src.name}/frontend"; nativeBuildInputs = [ - nodejs_22 - pnpm_8 + nodejs-slim_22 + pnpm pnpmConfigHook ]; pnpmDeps = fetchPnpmDeps { - inherit (finalAttrs) pname version src; - sourceRoot = "${finalAttrs.src.name}/frontend"; - pnpm = pnpm_8; - fetcherVersion = 3; - hash = "sha256-E2tUZXhcufuztXS+Z//uZk9omvaPrevNbGqVd41Lwhw="; + inherit (finalAttrs) + pname + version + src + sourceRoot + postPatch + ; + inherit pnpm; + fetcherVersion = 4; + hash = "sha256-wFrMoSeD87H1yfMD0jBcw60DKDeh4yjka5aWyHuQssA="; }; + postPatch = '' + substituteInPlace "package.json" "apps/remark42/package.json" \ + --replace-fail "pnpm@8.15.9" "pnpm@${pnpm.version}" + + substituteInPlace "apps/remark42/package.json" \ + --replace-fail '"pnpm": "8.*"' '"pnpm": "9.*"' + ''; + buildPhase = '' runHook preBuild - pushd "$pnpmRoot" + pnpm --filter ./apps/remark42 --fail-if-no-match run build - popd + runHook postBuild ''; installPhase = '' runHook preInstall + mkdir -p $out/web - cp -r "$pnpmRoot/apps/remark42/public/." $out/web/ + cp -r "apps/remark42/public/." $out/web/ + runHook postInstall ''; });