| 7 Mar 2025 |
| Adam Neverwas joined the room. | 15:56:04 |
mdietrich | Well, not so fast: I now get a build error of /nix/store/8msyislppkkr4dxzhir6qd2vc6qg23am-python3.12-rapidocr-onnxruntime-1.4.4.drv, which seems unrelated to https://hydra.nixos.org/build/291903538, which fails because of SDL's build failure (a dependency for some reason). I get a segfault somewhere in python in the pytestCheckPhase of the build. | 16:55:43 |
SomeoneSerge (back on matrix) |
Another question though: How would I override cudaSupport for a single package and its dependencies?
That's why we use import nixpkgs { config.cudaSupport = true; }
| 20:55:11 |
| 8 Mar 2025 |
hexa | @connorbaker:matrix.org i dont suppose your talk was recorded? | 12:23:13 |
connor (burnt/out) (UTC-8) | It probably was, just taking them a while to upload. If not, the slides are available here: https://github.com/ConnorBaker/2025-planet-nix | 19:57:32 |
ruro | Unless I am misunderstanding something, looking at the Southern California Linux Expo youtube channel, it seems that the only nix related streams from the 6th and 7th of march are for Room 101. And the "Evaluating the Nix Evaluator" talk was scheduled for Room 2 (which I am assuming is actually Room 102)? I wonder... | 20:42:23 |
Kevin Mittman (EOY sleep) | In reply to @ruroruro:matrix.org Unless I am misunderstanding something, looking at the Southern California Linux Expo youtube channel, it seems that the only nix related streams from the 6th and 7th of march are for Room 101. And the "Evaluating the Nix Evaluator" talk was scheduled for Room 2 (which I am assuming is actually Room 102)? I wonder... There were two room tracks for PlanetNix | 23:57:15 |
Kevin Mittman (EOY sleep) | It usually takes a month or so for the complete set of talks to be cut, edited and uploaded | 23:58:46 |
| 9 Mar 2025 |
Kevin Mittman (EOY sleep) | oh TIL they have livestreams | 00:23:32 |
connor (burnt/out) (UTC-8) | Room 2 for Planet Nix was conference room 104, which I didn’t see on the livestreams when I checked this morning 🤷♂️ | 02:25:53 |
| osbm changed their display name from osman bayram to osbm. | 13:30:40 |
ruro | SomeoneSerge (UTC+U[-12,12]): sorry to bother you with this again, but could you please take a final look at https://github.com/NixOS/nixpkgs/pull/379768#discussion_r1977975372 and let me know if you prefer setting badPlatformsConditions/hydraPlatforms for broken packages or filtering them in release-cuda.nix? | 17:25:00 |
ruro | Also, apparently the "Evaluation Errors" tab missing for individual evaluations isn't a nix-community specific problem. The same thing happens with the official Hydra instance, so I opened an issue upstream: https://github.com/NixOS/hydra/issues/1453. | 17:28:52 |
SomeoneSerge (back on matrix) | tomorrow 🙏 | 23:37:06 |
| 11 Mar 2025 |
SomeoneSerge (back on matrix) | RE: https://discourse.nixos.org/t/why-does-nixpkgs-config-exist/61456/6 RE: wrappers, stdenv, etc. RE: "The easiest way to achieve consistency today is to just enable cudaSupport Nixpkgs-wide using config"
And yet again, I don't think it has to be this way. It's not inherent, it's just a trait of callPackage/makeScope and of overrides being local. To try and defend the notion of the hypothetical stdenv.cudaSupport, if all of a package's inputs consistently accepted stdenv as a parameter, and could be entirely configured just using stdenv, then all it'd take to achieve consistency is to apply .override { inherit stdenv; } to all *Inputs. And if we didn't limit ourselves to the idea of callPackage and that there's a global "container" from which we "fill in" our parameters, that could probably be automated (by doing dynamic scoping essentially)
But ok let's leave callPackage and scoping aside. This still made me think of how to layer nvcc-wrapper and the conditional stdenv functionality. I'm back to the notion that we actually can move cudaSupport to (the platform attrsets and) stdenv, replace optionals cudaSupport with optionals stdenv.cudaSupport, and implement cudaStdenv.mkDerivation in such a way that it would be able to downgrade the compiler if it detects that its argument is capable of using CUDA functionality. The detection could still be done in two ways: we could demand that derivations explicitly pass an argument such as, say, cudaCapable = true, or we could detect that nvcc is in its nativeBuildInputs. I'd vote for the former because llvm, nvc++, and it's more explicit too. The cudaStdenv constructor could be made configurable so that it's possible to disable the downgrading (e.g. when we don't care about consistency or the LTO and we just trust in the wrapper; or if llvm offers more relaxed constraints). And regardless of the stdenv layer, the lower-level nvcc wrapper can exist and be used independently.
CC connor (he/him) (UTC-8)
| 10:09:54 |
connor (burnt/out) (UTC-8) | I’ll have to get back to you on that after I get a chance to think about it | 14:26:20 |
ruro | I just wanted to make sure. You commented
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none ?
| 19:19:31 |
ruro | * I just wanted to make sure. You commented
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none
?
| 19:19:38 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none
?
| 19:20:16 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none
?
As I've mentioned, you can see the exact code I am talking about in this branch.
| 19:21:25 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none
?
As I've mentioned, you can see the exact code I am talking about in here.
| 19:22:37 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- adding
tensorrt.hydraPlatforms = none
?
As I've mentioned, you can see the exact code I am talking about here.
| 19:22:44 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
As I've mentioned, you can see the exact code I am talking about here.
| 19:23:46 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.
As I've mentioned, you can see the exact code I am talking about here.
| 19:25:41 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.
As I've mentioned, you can see the exact changes I am talking about here.
| 19:25:54 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.
You can see the exact changes I am talking about here.
| 19:26:07 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
change brokenConditions to badPlatformsConditions
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.
You can see the exact changes I am talking about here.
| 19:28:07 |
ruro | * I just wanted to make sure. You left this comment on the release-cuda issue:
change brokenConditions to badPlatformsConditions
H'm well it seems to make sense at least for
nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }
Did I understand correctly, that you are okay with
- moving
cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
- moving
nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
- moving
nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
- setting
tensorrt.hydraPlatforms = none (because it can't be built on Hydra)
?
You can see the exact changes I am talking about here.
We can keep the Qt 5 missing (<2022.4.2.1) / Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.
| 19:28:36 |
SomeoneSerge (back on matrix) | ruro: this sounds great! | 22:02:03 |
| Adam Neverwas removed their display name adam_neverwas. | 23:24:15 |