!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

214 Members
69 Servers

Load older messages


SenderMessageTime
20 Mar 2025
@emilazy:matrix.orgemily MinGW kinda barely works half the time anyway but it seems fine to put it in stdenv. I'm pretty sure you need libiconv for bootstrap anyway because of GNU build tools wanting it. 20:58:04
@emilazy:matrix.orgemily (fwiw, while this is true and we include Apple's libiconv in stdenv, there are also packages that require the GNU one…) 20:59:15
@qyliss:fairydust.spaceAlyssa Ross I remember @Ericson2314:matrix.org wanted to go the exact opposite direction and explicitly specify dependencies on more things that might not be part of libc on all platforms. 21:05:59
@grimmauld:grimmauld.deGrimmauld (moving to @grimmauld:grapevine.grimmauld.de)About freebsd: https://github.com/NixOS/nixpkgs/commit/2b6b8e29c7696deaf8aefb7c666325354a9e2399 libiconv on freebsd seems to be cursed21:06:13
@qyliss:fairydust.spaceAlyssa RossAnd I broadly vibe with that approach tbh. Explicit is better than implicit.21:06:16
@emilazy:matrix.orgemily(okay let's settle on this room)21:06:19
@emilazy:matrix.orgemilyI agree with that in general, but I think that not providing some sort of common base basically just harms rare platforms in practice21:06:41
@emilazy:matrix.orgemily like, if we could mask parts of libc on every platform so you have to specify libiconv, then maybe? 21:06:57
@emilazy:matrix.orgemilybut what actually happens is that people write packages for the couple of platforms they have access to and then it breaks on other ones21:07:15
@grimmauld:grimmauld.deGrimmauld (moving to @grimmauld:grapevine.grimmauld.de) (i wasn't quite certain, this is very low in dep tree, but not stdenv on all platforms) 21:07:33
@emilazy:matrix.orgemily shrinking stdenv is a noble goal in general, but we have tons of build tooling in there already. I think that bundling libraries for things that are in libc on the vast majority of supported platforms makes sense 21:07:45
@emilazy:matrix.orgemily in particular there might be a platform with a super tiny libcore and then they have libfs and libmath and so on 21:08:07
@emilazy:matrix.orgemilythat would be elegant and in an ideal world we'd specify those explicitly21:08:13
@emilazy:matrix.orgemily but in practice if we wanted to support it in Nixpkgs, we'd bundle all of them into stdenv, and I think that's a perfectly reasonable trade-off, even if it's not the most beautiful possible world. adding libmath everywhere would just piss people off and usually not happen 21:09:03
@Ericson2314:matrix.orgJohn Ericsonthat was the hope21:16:53
@emilazy:matrix.orgemily then in that case it might be good, but in the current architecture we have it's better to have libiconv in stdenv than to try and get through 5,000 patches to add libiconv to deps lists because "it's needed on OpenBSD" 21:18:54
@emilazy:matrix.orgemilysince people will never reliably get it right if it only breaks on an obscure platform, and having (perceived-as-)noise in a package only required for one platform annoys people21:19:12
@Ericson2314:matrix.orgJohn Ericsonwhat is the darwin situation?21:19:16
@emilazy:matrix.orgemily we add Apple's libiconv to stdenv 21:19:24
@emilazy:matrix.orgemilywe didn't use to, but we do as of the recent rewrite21:19:29
@Ericson2314:matrix.orgJohn Ericson:/21:19:38
@emilazy:matrix.orgemily there was a lot of ++ lib.optionals stdenv.isDarwin [ libiconv ] before, which isn't even correct 21:19:41
@Ericson2314:matrix.orgJohn Ericsonwe have "avoid mass rebuild" perverse incentive21:20:01
@Ericson2314:matrix.orgJohn Ericsonit is easy to just bloat things more and more 21:20:06
@emilazy:matrix.orgemilynothing to do with mass rebuilds21:20:13
@emilazy:matrix.orgemily we rewrote the entire stdenv 21:20:20
@emilazy:matrix.orgemily FWIW, Apple's libiconv is effectively part of the system library on macOS insofar as they only compilation environments they ship have direct access to it 21:20:24
@emilazy:matrix.orgemily there's never a case where you could be compiling software for macOS in any normal way and not have libiconv right there 21:20:37
@emilazy:matrix.orgemily you do need -liconv, and we explicitly don't inject that 21:20:51
@emilazy:matrix.orgemilybuild systems have to get that right, which they mosly do21:20:56

Show newer messages


Back to Room ListRoom Version: 9