| 24 Oct 2025 |
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 |
emily | the nominal convention would be to give atf a withStdenvPackage if one really wants to provide its override as a public API but that would be quite ridiculous | 02:40:51 |
Randy Eckenrode | But this is also beside the point. Any package that conditionally set a parameter had to do it in the attrset passed to callPackage because you can’t do it in the function arguments definition (because callPackage will see them and ignore it IIRC). | 02:41:17 |
emily | a much richer override interface that has explicit delineation of public API and supports real interface stability and fancier defaults is something I am thinking about | 02:41:20 |
Randy Eckenrode | * But this is all beside the point. Any package that conditionally set a parameter had to do it in the attrset passed to callPackage because you can’t do it in the function arguments definition (because callPackage will see them and ignore it IIRC). | 02:41:29 |
emily | but this specific case is really marginal | 02:41:36 |
Randy Eckenrode | Version-specific arguments make the Haskell package set extremely annoying to use if you don’t want an LTS release. | 02:44:26 |
emily | the Haskell package set is specifically designed around pinning a specific Stackage LTS | 02:45:09 |
emily | though they are working on maintaining a parallel Nightly package set AIUI | 02:45:16 |
Randy Eckenrode | Yeah. I hate it for applications. | 02:45:30 |
Randy Eckenrode | I want to use the latest hledger because it has some QoL improvements, but I can’t because that’s not what’s in the Stackage LTS. | 02:46:22 |
emily | you can have specific additional versions of given packages, AIUI | 02:46:41 |
emily | it just needs adding in the config file | 02:46:45 |
Randy Eckenrode | I have something hacky that works for a somewhat newer version, but I don’t think I can govnewer than that. | 02:46:49 |
emily | talk to the Haskell maintainers about it? | 02:46:50 |
emily | it'll be a lot easier to maintain in Nixpkgs than externally | 02:46:59 |
emily | they support multiple versions of specific packages within the set | 02:47:10 |
Randy Eckenrode | https://github.com/NixOS/nixpkgs/issues/190542 | 02:48:03 |
Randy Eckenrode | The newer version of hledger in the set doesn’t build. It seems to be a recurring problem. | 02:48:47 |
emily | if you sign up as a maintainer you get automatic pings when haskell-updates breaks it | 02:49:31 |
emily | that's something they have somewhat better tooling for than us | 02:49:40 |
emily | general-us :) | 02:49:48 |
emily | https://github.com/NixOS/nixpkgs/pull/453350 | 02:50:03 |
Randy Eckenrode | Though it seems that Haskell may be using unversioned arguments with different releases pinning to different versions. | 02:50:04 |
emily | looks like it was also done. | 02:50:08 |
Randy Eckenrode | Now I need to update my flake to get it. I have a bunch of stuff I can simplify if I could use the table format with complex conditions. | 02:51:18 |