aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/remote-dev/README.md
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/README.md
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/README.md')
-rw-r--r--remote-dev/README.md20
1 files changed, 13 insertions, 7 deletions
diff --git a/remote-dev/README.md b/remote-dev/README.md
index bdb81ca..d38b082 100644
--- a/remote-dev/README.md
+++ b/remote-dev/README.md
@@ -134,13 +134,19 @@ git log --show-signature -1
- **Network for first nvim launch**: `vim.pack.add` fetches plugins
from GitHub on first start. Mason will also fetch LSP servers using
`nodejs`/`uv` from this profile.
-- **Mason pip installs need `python3-venv`**: a handful of Mason
- packages (autotools-language-server, codespell, mdformat,
- nginx-language-server, systemdlint) install themselves into per-pkg
- venvs via `python3 -m venv`. Ubuntu ships `python3` without the
- `venv` module by default. `bootstrap.sh` installs `python3-venv`
- via apt; on an existing VM run `sudo apt-get install python3-venv`
- once, then `:MasonToolsInstall` (or `:MasonInstallAll`) in nvim.
+- **Mason pip installs need `python3.11`**: a handful of Mason
+ packages (basedpyright, autotools-language-server, codespell,
+ mdformat, nginx-language-server, systemdlint, yamllint) install
+ themselves into per-pkg venvs via pip. Ubuntu 20.04's
+ `/usr/bin/python3` is 3.8 (too old, and `basedpyright` pulls
+ `nodejs-wheel-binaries` whose only Linux wheels are manylinux —
+ rejected by Nix's python, forcing a source build that needs gcc 12+).
+ `bootstrap.sh` installs `python3.11` from the deadsnakes PPA — it's
+ Ubuntu-native, accepts manylinux wheels, and the versioned name
+ (`python3.11`) leaves `/usr/bin/python3` untouched. On an existing
+ VM run `sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt-get
+update && sudo apt-get install python3.11 python3.11-venv` once,
+ then `:MasonToolsInstall` (or `:MasonInstallAll`) in nvim.
- **Ubuntu apt collisions**: Nix-installed binaries appear first in
PATH. The leaf-tools policy above exists precisely to keep this
shadowing contained to harmless tools.