diff --git a/overlays/default.nix b/overlays/default.nix index ce16870..d70f21f 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1 +1,25 @@ -final: prev: { } +final: prev: { + # PDS 0.4.5009 aborts in better-sqlite3 under Node 24. Node 22 satisfies + # PDS's Node 22+ requirement and keeps its native SQLite binding stable. + bluesky-pds = prev.bluesky-pds.overrideAttrs (old: { + nativeBuildInputs = + (builtins.filter (pkg: (pkg.pname or "") != "nodejs") old.nativeBuildInputs) + ++ [ prev.nodejs_22 ]; + + buildPhase = '' + runHook preBuild + + pushd ./node_modules/.pnpm/better-sqlite3@*/node_modules/better-sqlite3 + npm run build-release --offline --nodedir="${prev.srcOnly prev.nodejs_22}" + find build -type f -exec remove-references-to -t "${prev.srcOnly prev.nodejs_22}" {} \; + popd + + makeWrapper "${prev.nodejs_22}/bin/node" "$out/bin/pds" \ + --add-flags --enable-source-maps \ + --add-flags "$out/lib/pds/index.ts" \ + --set-default NODE_ENV production + + runHook postBuild + ''; + }); +}