Nixpkgs Stdenv | 220 Members | |
| 70 Servers |
| Sender | Message | Time |
|---|---|---|
| 6 Nov 2024 | ||
| is there any documentation (of really any kind) in regards to the inner working on how stdenv works? I find it a little bit difficult to follow the many multiple levels of nix code in nixpkgs, and was wondering if any kind of documentation exists, such as how the process works especially for cross environments | 23:03:17 | |
In reply to @frontear:matrix.orgThe cross part is easy because you do not have to deal with bootstrapping | 23:04:09 | |
| Here's some crumbs I sent to someone before
(edited the lib files out) https://github.com/NixOS/nixpkgs/blob/0d2ff894cb4d1bcb1b5006aa68c8cc87051b7741/pkgs/top-level/stage.nix#L308-L316 | 23:05:53 | |
Literally SomeoneSerge (utc+3) | 23:06:43 | |
| haha | 23:06:48 | |
| appreciated looks like need to write down some notes as i read these thank you | 23:10:18 | |
| https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/linux/default.nix | 23:11:19 | |
| vs cross https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/cross/default.nix | 23:11:31 | |
| 699 lines vs 107 | 23:11:41 | |
| honestly i expected the complete opposite | 23:12:00 | |
| id expected cross setup to be more difficult | 23:12:11 | |
| The hard work of bootstrapping is done in the native stages | 23:12:37 | |
| So cross is mostly just compiling packages like normal | 23:13:28 | |
| 7 Nov 2024 | ||
Yeah. It still needs to build cross-gcc twice (and arguably does it slightly incorrectly WRT libgcc.so), but it's not as involved as native tools are already there (and use native bootstrap). | 16:56:46 | |
| 8 Nov 2024 | ||
| 14:29:49 | ||
| 9 Nov 2024 | ||
is doing stdenv.override { whateverPlatform = …; } meant to work? | 08:43:56 | |
| it seems to not regenerate wrappers or anything | 08:44:00 | |
| (looking for an LLVM stdenv that targets a different platform. I assume this should not require rebuilding all of LLVM since it's multi-target) | 08:49:12 | |
In reply to @emilazy:matrix.orgCC not overriden automatically https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/default.nix you'll have to pass CC yourself https://github.com/NixOS/nixpkgs/blob/a31f2a7b37f2c0cc463768c2637413838da0f35b/pkgs/stdenv/cross/default.nix#L83 | 14:48:04 | |
| right | 14:48:25 | |
it seemed like I'd need multiple layers of nested overrides and I resorted to pkgsCross in the end | 14:48:43 | |
In reply to @emilazy:matrix.orgOh, that might explain why I see the Flutter engine update script not working after the changes with the platform attributes and using the ones from stdenv. | 15:46:11 | |
| hm? | 15:46:27 | |
| what changes? | 15:46:30 | |
| The ones that changes the consumption of `*Platform` -> `stdenv.*Platform` | 15:47:12 | |
| I think Artturin did that PR | 15:47:26 | |
| It seems to have messed up the source fetching since Flutter engine sources are based on host and target. | 15:48:03 | |
| I tried fixing it with overriding stdenv but that didn't help | 15:48:33 | |
| that seems really unlikely | 15:49:18 | |
| there's no semantic difference | 15:49:22 | |