aboutsummaryrefslogtreecommitdiffstats
path: root/openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.com>2026-09-24 20:22:57 +0200
committerGravatar Tom van der Lee <tom@vanderlee.com>2026-09-24 20:22:57 +0200
commit1f266cfa4048d5c71b39e3f458aa5f1cfa348579 (patch)
tree50510e273156e65adf4f57870517ef28940ad181 /openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md
parentb0c5452e3bb1e3bdbb27181e331fc959fa43f4fc (diff)
downloaddesktop-flake-1f266cfa4048d5c71b39e3f458aa5f1cfa348579.tar.gz
desktop-flake-1f266cfa4048d5c71b39e3f458aa5f1cfa348579.tar.bz2
desktop-flake-1f266cfa4048d5c71b39e3f458aa5f1cfa348579.zip
Enable nix-ld so uv-managed prebuilt binaries run on NixOS
uv fetches prebuilt CPython interpreters and native wheel extensions that expect a standard glibc loader path, which doesn't exist on NixOS without nix-ld. Enables it unconditionally on every NixOS host and extends its library set with common CPython native-extension dependencies not already covered by nix-ld's own defaults. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md')
-rw-r--r--openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md b/openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md
new file mode 100644
index 0000000..fdd8abe
--- /dev/null
+++ b/openspec/changes/archive/2026-09-24-enable-nix-ld/tasks.md
@@ -0,0 +1,13 @@
1## 1. Enable nix-ld on NixOS hosts
2
3- [x] 1.1 In `modules/nixos/common.nix`, add `programs.nix-ld.enable = true;` alongside the other unconditional host-level services, with a short comment explaining why (uv-managed prebuilt binaries need an FHS-style loader path). Verify by re-reading the diff: the option is set unconditionally, matching the file's existing style.
4- [x] 1.2 In the same file, add `programs.nix-ld.libraries = with pkgs; [ ncurses libffi sqlite readline gdbm expat ];`. Verify the six packages resolve in the pinned nixpkgs by running `nix eval '.#nixosConfigurations.test-vm.config.programs.nix-ld.libraries' --apply 'builtins.length'` (or equivalent) and confirming it evaluates without error.
5
6## 2. Verify the change builds
7
8- [x] 2.1 Run `nix flake check` and confirm it passes.
9- [x] 2.2 Run `nix build '.#nixosConfigurations.test-vm.config.system.build.toplevel'` and confirm the system closure builds successfully with `programs.nix-ld` enabled.
10
11## 3. Manual follow-up (deferred, not verifiable in this environment)
12
13- [ ] 3.1 After deploying to an activated NixOS host, run `uv python install 3.12` and confirm the installed interpreter executes (e.g. `uv run python3.12 --version`) instead of failing with a missing-interpreter error. This cannot be verified from this development environment since it requires an activated host, not just a successful build.