Nix Cross Compiling | 538 Members | |
| 110 Servers |
| Sender | Message | Time |
|---|---|---|
| 25 Nov 2025 | ||
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 | |
| Just updated my raspi and took me 1H to compile everything on r5 5900x | 19:03:35 | |
| * Just updated my raspi and took me 1H to compile everything on r9 5900x | 19:03:42 | |
| Thanks for all the info! | 19:06:35 | |