aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/remote-dev/home.nix
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-14 12:05:10 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-14 12:05:10 +0100
commit1589910f1319c1806bbfaf47c73a80cbcee8fafb (patch)
tree57f4dd8ac98e0394b7c62e54f7cea24284f2ac36 /remote-dev/home.nix
parente20942db608da333482d7485f123342962e1127a (diff)
downloaddotfiles-1589910f1319c1806bbfaf47c73a80cbcee8fafb.tar.gz
dotfiles-1589910f1319c1806bbfaf47c73a80cbcee8fafb.tar.bz2
dotfiles-1589910f1319c1806bbfaf47c73a80cbcee8fafb.zip
fix(remote-dev): use deadsnakes python3.11 instead of nix for Mason
Nix's python rejects manylinux wheels by design (its libc is patched), which forced pip in Mason's per-pkg venvs to compile nodejs-wheel-binaries (pulled in by basedpyright) from source. That source build then failed on Ubuntu 20.04's gcc 9.4 — Node 24 requires C++20 (g++ >= 12.2.0). Replace the nix python311-versioned-only derivation with an Ubuntu-native python3.11 from the deadsnakes PPA. It satisfies Mason's >=3.10 version requirement, accepts manylinux wheels, and the versioned binary name leaves /usr/bin/python3 untouched (leaf-tools policy preserved).
Diffstat (limited to 'remote-dev/home.nix')
-rw-r--r--remote-dev/home.nix18
1 files changed, 8 insertions, 10 deletions
diff --git a/remote-dev/home.nix b/remote-dev/home.nix
index 4aeff8a..576e6d8 100644
--- a/remote-dev/home.nix
+++ b/remote-dev/home.nix
@@ -86,16 +86,14 @@ in
uv # Mason python LSPs in isolated venvs; brings `uv`/`uvx` only
jre # for Mason's groovy-language-server (headless Java runtime)
- # Mason's pip-installer probes `python3.13`, `python3.12`, ..., `python3.10`
- # in PATH (in addition to `python3`) when picking an interpreter for the
- # per-pkg venvs it creates. Ubuntu 20.04 ships only `python3` = 3.8 which
- # is too old for codespell/mdformat/yamllint/etc. We expose ONLY the
- # versioned `python3.11` binary so we don't shadow the system `python3`
- # (preserving the leaf-tools policy: system builds keep using /usr/bin/python3).
- (pkgs.runCommand "python311-versioned-only" { } ''
- mkdir -p $out/bin
- ln -s ${pkgs.python311}/bin/python3.11 $out/bin/python3.11
- '')
+ # NB: python3.11 for Mason is NOT installed here — see bootstrap.sh.
+ # Nix's python disables manylinux wheel support by design (its libc is
+ # patched and doesn't satisfy any manylinux policy), so pip in a
+ # nix-python venv falls back to source builds for packages like
+ # `nodejs-wheel-binaries` (pulled in by basedpyright). That source build
+ # then fails on Ubuntu 20.04's gcc 9.4 (no C++20). Bootstrap installs
+ # `python3.11` via the deadsnakes PPA instead — Ubuntu-native binary
+ # with full manylinux wheel acceptance.
# Rust toolchain for Mason packages whose only install source is
# `cargo install` (shellharden). The host has these via the Arch