Before we discuss Nix* for CUDA, we must talk about Nixpkgs. There are…
Three kinds of parties engaged in Nixpkgs:
Maintainers …are expected to be personally invested in the project. They, typically, leverage Nixpkgs as a tool for shifting the status quo in how we approach computing: change what is perceived to be “reliable enough”, and what “realistic”; ensure that computing, on one hand, is available to entities and individuals that aren’t Google, and that, on the other, the industry itself doesn’t sink under the weight of the complexity it’s generated. Maintainers are incentivized to minimize action & complexity.
Then there are… Industrial Users, let’s call them #orgs-who-care (“partners”, “investors”, &c.), normally corporations who are legally obliged to maximize profits. Nix(pkgs) and the ecosystem for them is a cost reduction tool, its purpose is to widen the margin and, perhaps, maintain an edge over competition. Their primary concern is “legibility”: we’ll typically interact with their representatives, responsible for bringing Nix(pkgs), as any technology, into their stack. They’ll seek a way to shield themselves from liability for such a decision, before the bus factor and the overall abysmal sustainability story of the project are exposed to their management.
Finally, there’s… Everyone else, who, aside from “hackers” or academic researchers, is not expected to generate “value”, but may have expectations and extract benefits from the ecosystem.
The goal of the current effort is find a mutually beneficial compromise between maintainers' and commercial partners' interests. Later on in this document we shall bring up subjects that make it easy to forget: these entities represented by our partners do not operate in the framework of "friends or foes", nor "good and evil". They have their "articles of association", which say what they must do. They have shareholders and they are, perhaps, publicly traded. They might owe to the venture capital. They interact with the Project, and it is reasonable that we-maintainers and they-the industry maintain communication. This document is not to discourage collaboration, but to emphasize how complex the landscape for this collaboration is.
References
- 1
- nix-community, Log of step 36 of build 2740403 of job nixpkgs:cuda:python3Packages.catboost.x86\_64-linux,https://hydra.nix-community.org/build/2740403/nixlog/36
- 2
- GaetanLepage, python312Packages.tensorflow: use tensorflow-bin by default,https://github.com/NixOS/nixpkgs/pull/345658
- 3
- natsukium, python3Packages.\$\{jax,jaxlib\}: use jaxlib-bin by default,https://github.com/NixOS/nixpkgs/pull/363130
- 4
- SomeoneSerge, python3Packages.jaxlib: fetchAttrs reproducibility,https://github.com/NixOS/nixpkgs/pull/323681
- 5
- SomeoneSerge, buildBazelPackage: make dependency injection possible,https://github.com/NixOS/nixpkgs/issues/289015
- 6
- SomeoneSerge, buildBazelPackage: fetchAttrs: \$\{name\}-deps.tar.gz is platform-dependent,https://github.com/NixOS/nixpkgs/issues/289016
- 7
- uri-canva, buildBazelPackage's fetch derivation is error prone,https://github.com/NixOS/nixpkgs/issues/224446
- 8
- uri-canva, python3Packages.jaxlib-build: overfetch,https://github.com/NixOS/nixpkgs/pull/221390
- 9
- SomeoneSerge, ELSM3, toiminimi (sole proprietorship),https://tmi.someonex.net
- 10
- SomeoneSerge, Curriculum Vitae,https://github.com/SomeoneSerge/cv/releases
- 11
- ConnorBaker, Nixpkgs Commit Access Nomination for SomeoneSerge,https://github.com/NixOS/nixpkgs/issues/50105#issuecomment-1850465803
- 12
- SomeoneSerge, Nixpkgs Commit: ``maintainers: add SomeoneSerge'',https://github.com/NixOS/nixpkgs/pull/151265/commits/607930d95e1b287937c884ff1132089ed9894a59
- 13
- SomeoneSerge, Nixpkgs: libstdc++ issues with CUDA,https://github.com/NixOS/nixpkgs/issues/226165
- 14
- SomeoneSerge, cudaPackages.backendStdenv.cc: gccForLibs,https://github.com/NixOS/nixpkgs/pull/275947
- 15
- Halonen, Niklas and SomeoneSerge, Nix in Helsinki: report on the first meeting,https://fi.nix.ug/meetups/first-meetup
- 16
- Dolstra, Eelco, The purely functional software deployment model, Utrecht University,2006
- 17
- Foundation, NixOS and samuela and SomeoneSerge, NixOS CUDA Team,2022,https://nixos.org/community/teams/cuda
- 18
- SomeoneSerge, Nixpkgs Analytics: Nix Builds with Time Budgets,https://github.com/NixOS/GSoC/blob/main/ideas/2024.md#nixpkgs-analytics-nixpkgs-review-with-a-time-budget
- 19
- Mohd, Sinan and SomeoneSerge, Evanix: Nix Build Scheduling as Mixed-Integer Linear Programming,https://github.com/sinanmohd/evanix
- 20
- Mohd, Sinan, Build Scheduling: Final Report,https://www.sinanmohd.com/blog/gsoc
- 21
- SomeoneSerge, Nixpkgs Issue: Composable phases,https://github.com/NixOS/nixpkgs/issues/296544
- 22
- Wikipedia, Agora,https://en.wikipedia.org/wiki/Agora
- 23
- Wiktionary, Meydan,https://en.wiktionary.org/wiki/meydan#Turkish
- 24
- SomeoneSerge, Nixpkgs PR: GPU access in the sandbox,https://github.com/NixOS/nixpkgs/pull/256230
- 25
- layus, Nix Issue: pre-build-hook receives an invalid (non-existing) drvPath when remotely building with Op::BuildDerivation,https://github.com/NixOS/nix/issues/9272
- 26
- SomeoneSerge, Build against an older libc, keep the newest in the runtime closure,https://github.com/NixOS/nixpkgs/issues/303405
- 27
- SomeoneSerge, NixOS Discourse: A comment on flake inputs and dependency injection,https://discourse.nixos.org/t/im-not-convinced-flake-inputs-should-exist/50636/29?u=sergek
- 28
- Joseph, Adam, Infuse.nix: ``deep'' override\{Attrs\},https://discourse.nixos.org/t/infuse-nix-deep-override-attrs-generalizes-pipe-and-recursiveupdate/51665?u=sergek
- 29
- Bereknyei, Thomas, Units of composition: recipes, overlays, and packages,https://fosdem.org/2024/schedule/event/fosdem-2024-3107-units-of-composition-recipes-overlays-and-packages/
- 30
- Chevalier, Jonas, 1000 instances of Nixpkgs,https://zimbatm.com/notes/1000-instances-of-nixpkgs
- 31
- SomeoneSerge, Nixpkgs PR: nixosTests.slurm: ..?,https://github.com/NixOS/nixpkgs/pull/277349
- 32
- SomeoneSerge, {mpich,openmpi}: optionally link against slurm's libpmi2,https://github.com/NixOS/nixpkgs/pull/283071
- 33
- wolfgangwalther, treewide: support structuredAttrs in setup hooks,https://github.com/NixOS/nixpkgs/pull/318614
- 34
- Tensorflow Issues: A reply to ``Switch build system'',https://github.com/tensorflow/tensorflow/issues/53647#issuecomment-1063560009
- 35
- SomeoneSerge, Nixpkgs PR: python3Packages.jaxlib: fetchAttrs reproducibility,https://github.com/NixOS/nixpkgs/pull/323681
- 36
- Or, Shahar and Ringer, Jonathan, Full Time Nix: jonringer,https://fulltimenix.com/episodes/jonathan-ringer
- 37
- Courtès, Ludovic, What’s in a package,https://hpc.guix.info/blog/2021/09/whats-in-a-package/
- 38
- ConnorBaker, Draft: python3Packages.torch: drop submodules,https://github.com/NixOS/nixpkgs/pull/239291
- 39
- SomeoneSerge, Package request: python3Packages.openxla,https://github.com/NixOS/nixpkgs/issues/224354
- 40
- jade, The postmodern build system,https://jade.fyi/blog/the-postmodern-build-system/
- 41
- Ericson, John, Tracking issue for RFC 92: Dynamic derivations,https://github.com/NixOS/nix/issues/6316
- 42
- jwakely, Reply to ``cc-wrapper: broaden useCcForLibs condition'',https://github.com/NixOS/nixpkgs/pull/341715#issuecomment-2353051852
- 43
- SomeoneSerge, cc-wrapper: do not leak cc.lib,https://github.com/NixOS/nixpkgs/pull/333575
- 44
- adisbladis, Python: Remove test \& runtime dependencies from build time closure tracking issue,https://github.com/NixOS/nixpkgs/issues/272178
- 45
- SomeoneSerge, Reply to ``Python: Remove test \& runtime dependencies'',https://github.com/NixOS/nixpkgs/issues/272178#issuecomment-2569913756
- 46
- adisbladis, pyproject.nix,https://pyproject-nix.github.io/pyproject.nix/
- 47
- ConnorBaker, cuda-redist-find-features,https://github.com/ConnorBaker/cuda-redist-find-features/
- 48
- SomeoneSerge, Proposal to use evalModules to compose CUDA manifests,https://github.com/NixOS/nixpkgs/pull/240498#issuecomment-1627530935
- 49
- SomeoneSerge, Concern over out-of-tree cudaPackages customization when switching to cuda-redist-find-features,https://github.com/NixOS/nixpkgs/pull/240498#issuecomment-1688812206
- 50
- SomeoneSerge, Concern over out-of-tree cudaPackages customization when switching to cuda-redist-find-features (pt.~2),https://github.com/NixOS/nixpkgs/pull/240498#discussion\_r1304393650
- 51
- ConnorBaker, Tracking issue: cudaPackages: support overriding manifests,https://github.com/NixOS/nixpkgs/issues/251288
- 52
- SomeoneSerge, A comment on separating the merging of manifests from cudaPackages construction,https://github.com/NixOS/nixpkgs/pull/275560#issuecomment-1866431713
- 53
- ConnorBaker, NVCC wrappers in ConnorBaker/cuda-packages,https://github.com/NixOS/nixpkgs/pull/369956#issuecomment-2603029033
- 54
- SomeoneSerge, Tracking issue: Respect CMAKE\_CUDA\_ARCHITECTURES,https://github.com/catboost/catboost/issues/2540
- 55
- natsukium, python3Packages.catboost: 1.0.5 -> 1.2.2; build with cmake,https://github.com/NixOS/nixpkgs/pull/235226/
- 56
- natsukium, Comment on catboost hard-coding clang,https://github.com/NixOS/nixpkgs/pull/235226/files#r1349825358
- 57
- RossComputerGuy, catboost: use llvm 14 for cuda,https://github.com/NixOS/nixpkgs/pull/333562
- 58
- SomeoneSerge, On support LLVM in cudaPackages,https://github.com/NixOS/nixpkgs/pull/235226#discussion\_r1242726851
- 59
- Mittman, Kevin, Tracking issue: Binary Archive v4 format and schema,https://github.com/NVIDIA/build-system-archive-import-examples/issues/9
- 60
- SomeoneSerge, Announcement: CUDA Cache for Nix Community,https://discourse.nixos.org/t/cuda-cache-for-nix-community/56038
- 61
- SomeoneSerge, Petition: CUDA EULA patchelf exception,https://github.com/NVIDIA/build-system-archive-import-examples/issues/10
- 62
- tbenst, NVIDA licenses (\#76233),https://github.com/NixOS/nixpkgs/pull/76233
- 63
- rhendic, Ofborg: build unfree packages,https://github.com/NixOS/ofborg/pull/644
- 64
- Community, Nix, CUDA Jobset in Hydra,https://hydra.nix-community.org/jobset/nixpkgs/cuda
- 65
- Community, Nix, Nix Binary Cache,https://nix-community.org/cache/
- 66
- SomeoneSerge, On OfBorg and external reports,https://discourse.nixos.org/t/infrastructure-announcement-the-future-of-ofborg-your-help-needed/56025/22
- 67
- NixOS, nixpkgsFun definition,https://github.com/NixOS/nixpkgs/blob/e01d4e97761d551e30c6707b717cbe9efa13373a/pkgs/top-level/default.nix#L124-L149
- 68
- sielicki, linuxPackages.nvidia\_x11: add efa-nv-peermem,https://github.com/NixOS/nixpkgs/pull/360375
- 69
- SomeoneSerge, \verb|tests.cuda.db| (\#406740),https://github.com/NixOS/nixpkgs/pull/406740
- 70
- SomeoneSerge and ConnorBaker, motivation to (temporarily) introduce `evalModules` in `cudaPackages` (#271217),https://github.com/NixOS/nixpkgs/issues/271217
- 71
- ConnorBaker, CUDA13 PR (\#437723), exceptionally permitted ahead of \verb|cuda.db|,
- 72
- On stable namesets (\#266475),https://github.com/NixOS/nixpkgs/issues/266475
- 73
- ConnorBake`, glibc: NVCC aarch64 intrinsics are unsupported,https://github.com/NixOS/nixpkgs/pull/239291
- 74
- samuela, xla: init at unstable-2025-01-21,https://github.com/NixOS/nixpkgs/pull/483141
- 75
- XLA#1,https://github.com/openxla/xla/issues/1
- 76
- zimbatm/octoflow,https://github.com/zimbatm/octoflow
- 77
- YorikSar/hydra-github-app,https://github.com/YorikSar/hydra-github-app
- 78
- nixpkgs-cuda-ci: rolling releases wip, 2024,https://github.com/SomeoneSerge/nixpkgs-cuda-ci/commit/22416099cde845783df8262cc268583712a8f904
- 79
- nixos-cuda/hydra-jobsets#8,https://github.com/nixos-cuda/hydra-jobsets/pull/8
- 80
- hydra-channel-update-script: init, by `@YorikSar`,https://github.com/nixos-cuda/infra/commit/3ddfb4057b233635176850dafedea46cdca42eee
- 81
- is:pr head:staging-nixos (NixOS/nixpkgs),https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+head%3Astaging-nixos
- 82
- is:pr head:staging-next (NixOS/nixpkgs),https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+head%3Astaging-next+base%3Amaster
- 83
- NixOS Hydra: steps queued and building,https://grafana.nixos.org/explore?schemaVersion=1&panes=%7B%2216u%22:%7B%22datasource%22:%22000000001%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22hydra_steps_queued%20%2B%20hydra_steps_building%22,%22range%22:true,%22instant%22:true,%22datasource%22:%7B%22type%22:%22prometheus%22,%22uid%22:%22000000001%22%7D,%22editorMode%22:%22builder%22,%22legendFormat%22:%22__auto%22%7D%5D,%22range%22:%7B%22from%22:%22now-90d%22,%22to%22:%22now%22%7D,%22compact%22:false%7D%7D&orgId=1
- 84
- NixOS CUDA Hydra: eval 5889,https://hydra.nixos-cuda.org/eval/5889?full=1#tabs-now-fail
- 85
- samuela, Discourse: Development Not Sustainable,https://discourse.nixos.org/t/nixpkgss-current-development-workflow-is-not-sustainable/18741
- 86
- nixpkgs-cuda-ci,https://github.com/SomeoneSerge/nixpkgs-cuda-ci/commits/develop/?before=ebb526d7457536c770c3a01511ac963e07ec40a0+1001
- 87
- nixpkgs-upkeep,https://github.com/samuela/nixpkgs-upkeep/commits/main/?after=eab189e3fbc0735d28175258fbfde7e6438c4c8e+200
- 88
- cuda-nix-testsuite,https://github.com/samuela/cuda-nix-testsuite
- 89
- Nix Developer Dialogues 2023: "AI",https://discourse.nixos.org/t/on-nixpkgs-and-the-ai-follow-up-to-2023-nix-developer-dialogues/37087
- 90
- FullTimeNix ep. 15,https://fulltimenix.com/episodes/someoneserge
- 91
- NixOS/nixos-homepage: add cuda team community page,https://github.com/NixOS/nixos-homepage/commit/316e3702e5739e308928603e1b52ade59087802f
- 92
- CUDA Roadmap June 2023,https://discourse.nixos.org/t/cuda-team-roadmap-and-call-for-sponsors/29495
- 93
- NixOS-CUDA Hydra: Builds,https://hydra.nixos-cuda.org/jobset/nixos-cuda/cuda-packages-unstable
- 94
- NixOS-CUDA Hydra: GPU Checks,https://hydra.nixos-cuda.org/jobset/nixos-cuda/cuda-gpu-checks-unstable
- 95
- GPU access in the sandbox (#256230),https://github.com/NixOS/nixpkgs/pull/256230
- 96
- GPU-enabled tests (#225912),https://github.com/NixOS/nixpkgs/issues/225912
- 97
- Discourse: Development Not Sustainable → Pre-Merge Blockers,https://discourse.nixos.org/t/nixpkgss-current-development-workflow-is-not-sustainable/18741/74
- 98
- singularity `--nv` (#279235),https://github.com/NixOS/nixpkgs/pull/279235
- 99
- apptainer `--nv` (#280076),https://github.com/NixOS/nixpkgs/pull/280076
- 100
- Tracking: singularityTools (#177908),https://github.com/NixOS/nixpkgs/issues/177908
- 101
- `@ereslibre`: Support (NVIDIA) CDI (#284507),https://github.com/NixOS/nixpkgs/pull/284507
- 102
- `@ereslibre`: NVIDIA CDI follow-up PRs,https://github.com/NixOS/nixpkgs/pulls?q=nvidia+cdi+author%3Aereslibre+is%3Apr
- 103
- k3s: GPU Passthrough (#288037),https://github.com/NixOS/nixpkgs/issues/288037
- 104
- `requiredPythonModules` ← `propagatedBuildInputs` by `@Fridh` (#102613),https://github.com/NixOS/nixpkgs/pull/102613
- 105
- `pyproject.nix` by `@adisbladis`: Problems with Nixpkgs,https://pyproject-nix.github.io/pyproject.nix/build.html
- 106
- opencv4: expose `cxxdev`,https://github.com/NixOS/nixpkgs/pull/271078/changes/ada3991349beb5880e3994f25c65a0cf68941b83
- 107
- Guix HPC: What's in a Package,https://hpc.guix.info/blog/2021/09/whats-in-a-package
- 108
- torch1→2 (#222273),https://github.com/NixOS/nixpkgs/pull/222273
- 109
- noexcept (#276800)),https://github.com/NixOS/nixpkgs/pull/276800
- 110
- noexcept (#275939),https://github.com/NixOS/nixpkgs/issues/275939
- 111
- noexcept (#273794),https://github.com/NixOS/nixpkgs/issues/273794
- 112
- version solving regression (#282185),https://github.com/NixOS/nixpkgs/pull/282185
- 113
- noexcept (#276800),https://github.com/NixOS/nixpkgs/pull/276800
- 114
- `nixos-rebuild` driver mismatch (#255070),https://github.com/NixOS/nixpkgs/issues/255070
- 115
- `cuda_compat` and `libnvrm` (#273389),https://github.com/NixOS/nixpkgs/pull/273389
- 116
- `cuda_compat` and `libnvrm` (numtide/nix-gl-host#10),https://github.com/numtide/nix-gl-host/pull/10
- 117
- `autoPatchelf` (#178440),https://github.com/NixOS/nixpkgs/pull/178440
- 118
- libstdc++ mismatch (#218265),https://github.com/NixOS/nixpkgs/pull/218265
- 119
- libstdc++ mismatch (#223664),https://github.com/NixOS/nixpkgs/pull/223664
- 120
- `cuda_compat` eval errors (#406668),https://github.com/NixOS/nixpkgs/pull/406668
- 121
- explicit dynamic dependencies (NVIDIA/build-system-archive-import-examples/issues/5),https://github.com/NVIDIA/build-system-archive-import-examples/issues/5
- 122
- `$ORIGIN` (#225240),https://github.com/NixOS/nixpkgs/issues/225240#issuecomment-1539159050
- 123
- `cc-wrapper` friction (#282220),https://github.com/NixOS/nixpkgs/pull/282220
- 124
- `cc-wrapper` friction (`review-of-333575/50496/6`),https://discourse.nixos.org/t/review-of-333575/50496/6
- 125
- remediation messages (#456908),https://github.com/NixOS/nixpkgs/pull/456908
- 126
- `@emilazy`: `9<=gcc<12` removal warning for CUDA users (#342112),https://github.com/NixOS/nixpkgs/pull/342112
- 127
- `@emilazy`: drop `cuda<=12.5`, a year later (#434827),https://github.com/NixOS/nixpkgs/pull/434827
- 128
- release friction (#437723#issuecomment-3474672706),https://github.com/NixOS/nixpkgs/pull/437723#issuecomment-3474672706
- 129
- release friction (#437723#issuecomment-3471044964),https://github.com/NixOS/nixpkgs/pull/437723#issuecomment-3471044964
- 130
- \verb|getOutput| regression (#323056),https://github.com/NixOS/nixpkgs/pull/323056
- 131
- petition-to-build-and-cache-unfree-packages-on-cache-nixos-org/17440/53 (relitigation),https://discourse.nixos.org/t/petition-to-build-and-cache-unfree-packages-on-cache-nixos-org/17440/53
- 132
- containerd: nixos tests ignored and removed,https://github.com/containerd/containerd/issues/12683
- 133
- patchelf exception (NVIDIA/build-system-archive-import-examples/issues/10),https://github.com/NVIDIA/build-system-archive-import-examples/issues/10
- 134
- Most NixOS' Outreachy 2025 candidates rejected: "embarrassing" due to the fact that the sum that had to be secured was USD `20 000` per participant,
- 135
- NixOS/nix-security-tracker,https://github.com/NixOS/nix-security-tracker
- 136
- KerruKinutum Oy,2025,https://kerrukinutum.com
- 137
- INDUSTRIAL SOCIETY AND ITS FUTURE,https://archive.nytimes.com/www.nytimes.com/library/national/unabom-manifesto-1.html
- 138
- James C Scott, Against the Grain, Yale University Press,2017
- 139
- James C Scott, Seeing like a State, Yale University Press,1998
- 140
- Graeber David, DEBT, Melville House Publishing,2011
- 141
- sean goedecke, Seeing like a software company,https://www.seangoedecke.com/seeing-like-a-software-company
- 142
- LunNova, ROCm 7.1.1: You can (not) build,https://lunnova.dev/articles/rocm-711-you-can-not-build/
- 143
- LUMI’s full system architecture revealed,https://lumi-supercomputer.eu/lumis-full-system-architecture-revealed/
- 144
- The Zyphra AMD Cluster,https://zyphra.webflow.io/post/zaya1#zaya_3
- 145
- Frontier,TOP 500,https://www.top500.org/system/180047/
- 146
- El Capitan,TOP 500,https://www.top500.org/system/180307/
- 147
- nixos/steering-committee, Vote 12: Approve direction of grant program and initiative funding proposal,https://github.com/NixOS/steering-committee/blob/c10d2d1dd398c88386c930ab5f75084162a5e402/vote-logs/0012-grant-program-direction.md
- 148
- nixos/steering-committee, Meeting Minutes,https://github.com/NixOS/steering-committee/blob/main/minutes/2026-03-18.md#new-topics-20-min
- 149
- nixos/steering-committee, Meeting Minutes,https://github.com/NixOS/steering-committee/blob/c10d2d1dd398c88386c930ab5f75084162a5e402/minutes/2026-03-25.md#old-topics-15-min
- 150
- Filipo Valsorda, I’m Now a Full-Time Professional Open Source Maintainer,https://words.filippo.io/full-time-maintainer