| 24 Oct 2025 |
emily | because pkgsStatic is cross so it skips the override and then the static apple-sdk infrecs? | 02:16:51 |
Randy Eckenrode | Yeah. ATF needs to be in checkInputs and nativeCheckInputs because it provides a runner and a library you need to link. For pkgsStatic, that library is pkgsStatic.atf, which depends on the SDK, which depends on pkgsStatic.libiconv, which depends on pkgsStatic.atf. | 02:18:16 |
Randy Eckenrode | Native stdenvs can untie that knot with overrides, but cross ones either can’t or don’t. | 02:18:37 |
emily | perhaps we should propagate the extra packages from the stdenv rather than apple-sdk | 02:18:41 |
Randy Eckenrode | It wouldn’t matter where it’s propagated. | 02:19:03 |
Randy Eckenrode | The static stdenv would depend on pkgsStatic.libiconv, which etc. | 02:19:30 |
emily | right, but you can at least stdenv.override { extraBuildInputs = [ ]; } | 02:26:09 |
emily | and I was thinking it'd be easier to get the bootstrap to do the right thing | 02:26:18 |
emily | hmm | 02:27:24 |
emily | pkgs/stdenv/cross/default.nix seems to only add the SDK in the last stage | 02:27:28 |
samasaur | did you have a particular one in mind? I just looked through them and I didn't see anything that looked like it would cause this problem/solve it for CFNetwork | 02:28:22 |
emily | we have some SDK stuff | 02:28:32 |
emily | thought it might be relevant | 02:28:36 |
emily | though I deleted most of that stuff | 02:28:38 |
samasaur | i'm really baffled by why CFNetwork and Network behave differently | 02:29:01 |
samasaur | they appear to be treated identically by qt, and we don't seem to do any patching for either of those explicitly | 02:29:51 |
samasaur | so as I understand it either both should be picked up from the SDK or neither should be | 02:30:11 |
Randy Eckenrode | That would remove the SDK. You’d have to add it back. | 02:31:05 |
emily | right | 02:31:40 |
emily | seems best to just fix the cross stdenv. if only I knew why it was broken | 02:31:47 |
Randy Eckenrode | I think less specific to this example is coming up with a solution to the general problem of conditional arguments. The solution given in the by-name RFC was to add your package to all-packages.nix, but it seems the desire now is not to have packages there? | 02:32:19 |
Randy Eckenrode | That’s one example. It’s potentially anything that has a recursive dependency that the bootstrap had to break up. | 02:33:03 |
Randy Eckenrode | Like in the old source-based SDK how xnu depended on python3 but relied on the bootstrap to override it with python3Minimal to break the infinite recursion. | 02:34:15 |
emily | that shouldn't be an issue for cross though | 02:38:40 |
emily | since cross already has a bootstrapped toolchain | 02:38:44 |
emily | right? | 02:38:51 |
emily | it's only buildInputs, not nativeBuildInputs, that can cause problems | 02:39:03 |
Randy Eckenrode | IIRC, it was an issue with adding cross support to the old SDK. | 02:39:20 |
emily | well, this is details of the exact arrangement of bootstrap leaking into individual packages, which is not ideal since the former can change and it's why all the overlays/overrides are in pkgs/stdenv to begin with | 02:39:56 |
emily | https://github.com/NixOS/nixpkgs/pull/444420 addressed the most common case of overrides by far | 02:40:27 |