top | item 37105834

(no title)

RaitoBezarius | 2 years ago

For example, Flakes have no concept of cross compilation and makes this use case extremely tedious to use.

Flakes were a RFC then merged as an experimental feature and shilled too much to the community to the point they are now a quasi standardized feature even though they didn't go through RFC and therefore ignored all the valuable feedback.

This whole debacle made a lot of invested people tired on both sides.

discuss

order

predictabl3|2 years ago

> Flakes have no concept of cross compilation and makes this use case extremely tedious to use.

I don't agree at all. I use flakes with cross compilation literally all of the time. Having a concept of "cross-compilation" at the CLI level, instead of being part of the nix evaluation itself would be a travesty IMO. I love being able to do a single nix eval that includes 3 different architecture of native builds for my host toplevels, along with "cross" variants that set hostPlatform to x86 and produce cross-builds.

40yearoldman|2 years ago

What? I compile my arm64 system on a amd64 system and send them to my cache server so my arm systems don’t have to do the work and just download the outputs and apply them.

seabass-labrax|2 years ago

That's something I would like to try for my PinePhone. It's been tedious to do development for it, as the PinePhone's CPU struggles with most compilation tasks. Using Nix would be a good way of building for that platform's somewhat exotic features (arm64 and musl libc) on a more powerful machine, without confusing the system package manager with package versions outside the distribution - I should be able to copy the Nix derivations over and install them temporarily with nix-shell. Thanks for the inspiration!

gallexme|2 years ago

Pretty sure nix flake check --all-systems Builds it for all systems, u just have to add a check for the package