| 16 Feb 2026 |
| @yimi4:matrix.org joined the room. | 22:10:53 |
| 17 Feb 2026 |
opeik | wat
error: flake 'flake:nixpkgs' does not provide attribute 'packages.aarch64-darwin.default' or 'defaultPackage.aarch64-darwin'
| 02:25:13 |
opeik | * it's busted?
error: flake 'flake:nixpkgs' does not provide attribute 'packages.aarch64-darwin.default' or 'defaultPackage.aarch64-darwin'
| 02:25:31 |
opeik | * it's busted?
error: flake 'flake:nixpkgs' does not provide attribute 'packages.aarch64-darwin.default' or 'defaultPackage.aarch64-darwin'
the flake.nix definitely has nixpkgs:
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Nix unstable packages.
flake-utils.url = "github:numtide/flake-utils"; # Nix flake utility functions.
};
| 02:26:10 |
ian-h-chamberlain | what does your shebang look like? it seems like you might be missing the #package selectors? | 16:31:07 |
| @yimi4:matrix.org set a profile picture. | 22:04:02 |
| 18 Feb 2026 |
| Vitriolic 👾 joined the room. | 02:04:03 |
opeik | exactly the same as yours:
#!/usr/bin/env -S nix shell nixpkgs#hello nixpkgs#cowsay -c bash
hello | cowsay
| 02:37:12 |
opeik | * the same as your example above:
#!/usr/bin/env -S nix shell nixpkgs#hello nixpkgs#cowsay -c bash
hello | cowsay
| 02:37:58 |
ian-h-chamberlain | huh, maybe some quirk of macos Lix then? the nix-on-droid example worked with Lix 2.93.3 for me but my Mac with Lix 2.93.3 is also giving me a similar error
§ /tmp/test.sh
path '/tmp/test.sh' does not contain a 'flake.nix', searching up
error: could not find a flake.nix file
also reading the manpage it seems like -S shouldn't even be needed on Darwin but is probably more portable with it. but with or without, seems to want a flake.nix file which afaik shouldn't be necessary with a fully qualified flake ref like github:nixos/nixpkgs that I was trying
| 06:15:26 |
ian-h-chamberlain | I'll try this on nixos when I have a chance then probably search for / file an issue since it seems inconsistent and I think ought to work without the fancy nix-shell parsing mentioned further up | 06:22:14 |
| splurged changed their profile picture. | 09:31:42 |
| KSP Atlas joined the room. | 09:57:56 |
| Erin [ DEPRECATED ] left the room. | 12:02:57 |
| lucy changed their display name from evoea0 to lucy. | 17:01:00 |
| -> @n:rab.lol changed their display name from niko ⚡️ to -> @n:rab.lol. | 23:28:24 |
| 19 Feb 2026 |
ian-h-chamberlain | Aha! I've figured something out, this is not a Lix issue but indeed a cursed macOS shebang quirk. You can see it more obviously with one like this:
#!/usr/bin/env -S echo nixpkgs#foo nixpkgs#bar
The man pages for env claim (seemingly incorrectly) that # characters only matter at the beginning of a split argument, and can be escaped with \#: https://ss64.com/mac/env.html
This StackExchange question has some more details about a similar, related issue: https://unix.stackexchange.com/a/774145 and it seems macOS simply copied man pages from BSD even though the behavior is different :( so the best bet might be something like the "polyglot" script they suggest for JS there, if you can figure out how to adapt it for your use case.
| 04:45:06 |
| niko joined the room. | 08:44:12 |
| catsarecute set a profile picture. | 19:00:59 |
| -> @n:rab.lol left the room. | 22:53:14 |
| 20 Feb 2026 |
toonn | Isn't a nix-shell shebang always just `#! /usr/bin/env nix-shell`? So no hashes to mess up and the second "shebang" line is parsed by Nix or Lix as the case may be, not by a shell as a shebang. | 10:13:30 |
hexa | yep | 11:19:53 |
ian-h-chamberlain | maybe but in this case they were trying to use nix shell with flake refs (which as I understand has had shebang parsing removed from Lix), not nix-shell | 19:31:11 |
hexa | nix shell has no shebang support from what I know | 19:32:06 |
toonn | And either way those flake refs would have to be passed on the second, not really a shebang, line no? | 19:34:17 |
ian-h-chamberlain | yea. maybe more accurate description is "not added to Lix", cppnix has https://nix.dev/manual/nix/2.33/command-ref/new-cli/nix.html?highlight=shebang#shebang-interpreter | 19:35:22 |
ian-h-chamberlain | but on non-darwin it seems you can fake a subset of this by using OS built-in shebangs and env -S parsing, which is the example I gave earlier | 19:39:00 |
ian-h-chamberlain | * | 19:39:27 |
toonn | But shebang parsing has nothing to do with Nix when it's the shell parsing it. | 19:42:37 |
toonn | Nvm, that's kinda what you said anyway. | 19:45:31 |