Nix Cross Compiling | 554 Members | |
| 118 Servers |
| Sender | Message | Time |
|---|---|---|
| 25 Nov 2025 | ||
| I get that; flakes are not my main issue on this. I'm just providing context there. | 18:35:43 | |
There's some packages cached https://github.com/NixOS/nixpkgs/blob/75c025c6135ca219cded2592343bef3daa4b39b9/pkgs/top-level/release-cross.nix#L239 | 18:37:22 | |
Yup binfmt is possible to setup on all distros | 18:38:09 | |
Can't automatically pick the packages to get from the cache and which to cross-compile. You can however make a second native nixpkgs instance to pick packages from | 18:40:19 | |
*
Can't automatically pick the packages to get from the cache and which to cross-compile. You can however make a second native nixpkgs instance to pick packages from, you could even overlay them. | 18:40:29 | |
Could I introspect the cache somehow (outside of nix, ahead of time) and add a nixpkgs overlay based on pname to select between ( native | cross ), hoping that the hashes will then match? | 18:43:18 | |
If I do set up binfmt emulation, and I'm using a stable nixos branch that hydra has cached, and not building custom packages, should I expect a 99% cache hit rate, and then the last bit is essentially making the sdcard images which I'd need to do locally? | 18:44:51 | |
| (also I haven't said this yet - thank you for your help!) | 18:45:24 | |
| nix-forecast for a specific installable status https://github.com/getchoo/nix-forecast hydra-check for general status https://github.com/nix-community/hydra-check | 18:46:20 | |
| Could probably make something with those | 18:46:29 | |
The pkgs instance of a config can be accessed like this nixosConfigurations.ArtDesktop.pkgs.hello | 18:48:06 | |
Very nice, looks like something that will be very useful for a/b comparisons. Thanks for the pointer!
Good to know, but probably more useful for those actively hacking on nixpkgs | 18:49:03 | |
| aarch64-linux is pretty well supported so I guess so | 18:51:17 | |
| https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents | 18:51:24 | |
| x86_64-linux and aarch64-linux stuff tested there | 18:51:36 | |
| I cross compile to my raspis but when I've done a nix shell on them I haven't needed to compile packages | 18:52:15 | |
| If you do hack something up then let us know, I'm interested | 18:53:04 | |
per nix-forcast, if I do emulation I get a 99.64% cache hit, but with cross I get a 63.74% hit rate. Interesting, and probably supports that setting up binfmt on this ubuntu machine is worth it | 18:53:25 | |
| Interesting, I suppose it makes sense that a nix shell wouldn't need to compile - but I guess you still need to download to the store (since locally you have the crosscompiled version) | 18:54:47 | |
69.87% of paths available (1746 out of 2499) | 18:54:52 | |
| Hadn't used that before | 18:55:13 | |
| cool | 18:55:16 | |
What configuration settings do you use here? I'm new to this one too, and I see I can choose (mainline | proprietary) kernel, (nixpkgs stable | nix-hardware | raspberry-pi-nix) for hardware support. | 18:58:52 | |
| This particular pi is a 4b and will be headless, so I don't need to have much desktopy stuff on it | 18:59:20 | |
| The biggest obstacle to making it all automatic with nix-forecast and a script is nested attrs but just changing the top-level attrs will increase the cache hits by a lot | 18:59:45 | |
Didn't change the kernel | 19:00:42 | |
I figured the biggest issue would be that it's not easy to map cached store paths back to attr / package names | 19:01:01 | |
| Also got these to not compile gtk
| 19:01:04 | |
| * Also got these to not compile gtk and some other packages
| 19:01:10 | |
And I import (modulesPath + "/profiles/minimal.nix") | 19:02:51 | |