| 15 Nov 2024 |
emily | In reply to @aleksana:mozilla.org This means that we just need to add an intermediate derivation? well, we also need ca-derivations | 11:28:30 |
emily | or to have every library include a FOD hash that needs updating after building | 11:28:36 |
emily | but other than that, it's fairly simple in principle, yeah | 11:28:46 |
emily | also, header changes still mess it all up unless you do some kind of normalization there | 11:28:57 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | I'd want to enable ca-derivation by default first | 11:29:53 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | We should be pretty close, except for some hydra bugs? | 11:30:19 |
emily | we're pretty far I think. | 11:30:39 |
emily | the actual feature has a bunch of bugs I think | 11:30:46 |
emily | it's unclear how to get it working on Darwin at all without a bunch of machinery | 11:30:55 |
emily | and we support evaluating Nixpkgs with Nix 2.3 | 11:31:02 |
emily | let's see if we can get structured attributes done first. that's in 2.3 and we still haven't managed to toggle it | 11:31:45 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | Can we rewrite paths to ca-derivation in hydra, without mass build? | 11:32:06 |
emily | I don't think so | 11:32:50 |
p14 | emily: all my staging building is finished. At least with clang 18, I don't hit: https://github.com/NixOS/nixpkgs/commit/1e26d33371a4a7238a644c49ddae49a4009c927f, even if I drop the nostdlibinc flag. | 11:36:34 |
p14 | I could try with an older clang and see if the situation differs there. | 11:36:46 |
emily | huh. like completely dropped? | 11:40:13 |
emily | definitely try 15 | 11:40:20 |
p14 | Yes, as in, removed from compiler, and verified gone from NIX_DEBUG output of the compiler wrapper. Doing 15 now. | 11:41:49 |
p14 | I was originally going to stage this as moving it to the compiler wrapper, now I'm toying with just dropping it. | 11:42:18 |
p14 | But maybe staging it by moving it to the compiler wrapper would be better if it needs to be reintroduced. | 11:42:39 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | In reply to @emilazy:matrix.org actually patch up all the indirect references Thoughts: - we'd better take back control of how packages are provided to users from nix, especially in the nix3 shell and run
- pkgs is just one layer, but we can actually have several (or just two), and the bottom one is the unmodified build result, which is also stored in the cache.
- the process of wrapping or linking binaries can be written in an upper-level derivation, and these derivations should prefer local builds
| 11:47:16 |
emily | you can do it at the fixed point level | 11:49:09 |
emily | the resulting package set interface could be the same | 11:49:14 |
emily | you'd probably want some splicing-y .__stubs type stuff 🫣 | 11:49:24 |
emily | I think it's fine to do the relinking builds on Hydra though (probably) | 11:49:42 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | Yes, we can still provide the default one | 11:50:11 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | It's just that we have to save two copies now | 11:50:27 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | And probably necessary to split out checkPhase so that the library itself doesn't show up in the build closure of stub derivation | 11:52:44 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | Then with CA you can say it must be the same | 11:53:20 |
aleksana 🏳️⚧️ (force me to bed after 18:00 UTC) | So no rebuilds | 11:53:26 |