From fdde0ea3ad2eaf69e2aae6476411985a72d93e32 Mon Sep 17 00:00:00 2001 From: Padreug Date: Tue, 26 May 2026 08:56:34 +0200 Subject: [PATCH] fix(nix): pin python311 for atm-app native module build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nixpkgs 24.11 made `pkgs.python3` an alias for Python 3.12, which removed `distutils` from stdlib. node-gyp@9.4.1 (transitively pulled in by better-sqlite3) still imports `distutils.version`, so the app derivation failed with `ModuleNotFoundError: No module named 'distutils'` on the better-sqlite3 rebuild step. Pin to python311 — still in 24.11 nixpkgs. Drop once pnpm-lock bumps better-sqlite3 to a release whose node-gyp@10+ doesn't need distutils. Co-Authored-By: Claude Opus 4.7 (1M context) --- nix/mkAtmApp.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nix/mkAtmApp.nix b/nix/mkAtmApp.nix index 4efb848..5568794 100644 --- a/nix/mkAtmApp.nix +++ b/nix/mkAtmApp.nix @@ -45,7 +45,10 @@ pkgs.stdenv.mkDerivation (finalAttrs: { nodejs pnpm pkgs-unstable.pnpmConfigHook - pkgs.python3 # node-gyp (better-sqlite3) + # node-gyp@9.4.1 (pulled in by better-sqlite3) imports distutils, which + # Python 3.12 removed. pkgs.python3 became 3.12 in nixpkgs 24.11. Pin + # 3.11 here until pnpm-lock bumps better-sqlite3 to a node-gyp@10+ build. + pkgs.python311 pkgs.pkg-config pkgs.autoPatchelfHook # patch .node ELF binaries ];