I keep running into this problem with nix, where it claims that the end of the string has been reached:
warning: Git tree '/home/exodrifter/notes/logbook' is dirty
error (ignored): error: end of string reached
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'quartz-4.3.1'
whose name attribute is located at /nix/store/wzx1ba5hqqfa23vfrvqmfmkpj25p37mr-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'installPhase' of derivation 'quartz-4.3.1'
at /nix/store/bkm5f4jk8c8w7zg4iav1vv2xrxvisv9r-source/flake.nix:36:15:
35|
36| installPhase = ''
| ^
37| runHook preInstall
error: path '/nix/store/bkm5f4jk8c8w7zg4iav1vv2xrxvisv9r-source/quartz.layout.ts' does not exist
Apparently, the important part of this error message is actually at the bottom. For some reason that I don’t understand, nix flakes do not consider files that have not yet been tracked by git:
Nix Flakes, Part 1: An introduction and tutorial (tweag.io)
Note that any file that is not tracked by Git is invisible during Nix evaluation, in order to ensure hermetic evaluation.
I don’t know what hermetic evaluation is. Nonetheless, as you can see in this example, the file in question is not tracked yet:
On branch main
Your branch is ahead of 'origin/main' by 93 commits.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: flake.nix
Untracked files:
(use "git add <file>..." to include in what will be committed)
content/entries/20240915_240936.md
quartz.layout.ts
no changes added to commit (use "git add" and/or "git commit -a")
If this file becomes tracked (with git add quartz.layout.ts
, for example), then the nix error will go away.