-
-
Notifications
You must be signed in to change notification settings - Fork 18.6k
Top-level nixpkgs-headless package set #29135
Copy link
Copy link
Open
Labels
1.severity: significantNovel ideas, large API changes, notable refactorings, issues with RFC potential, etc.Novel ideas, large API changes, notable refactorings, issues with RFC potential, etc.2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md9.needs: community feedbackThis needs feedback from more community members.This needs feedback from more community members.
Metadata
Metadata
Assignees
Labels
1.severity: significantNovel ideas, large API changes, notable refactorings, issues with RFC potential, etc.Novel ideas, large API changes, notable refactorings, issues with RFC potential, etc.2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md9.needs: community feedbackThis needs feedback from more community members.This needs feedback from more community members.
Fields
Give feedbackNo fields configured for issues without a type.
Short of #12877, which is a bigger job, we already have (implicitly) a notion of headless packages in NixOS today. If you import
minimal.nix, you find it goes intono-x-libs.nixwhich contains this gem:nixpkgs/nixos/modules/config/no-x-libs.nix
Lines 29 to 39 in bd54589
Which is basically a super ad-hoc headless package set, disabling X in a few places.
minimal.nixdoes appear to get forced as part of NixOS testing, but none of those jobs show up as distinct entities, so we'd never really notice if they broke except in that they might hinder a test, possibly by accident.What if instead we took the snippet above from no-x-libs.nix and made it a top-level nixpkgs override, something like nixpkgs.headless, with the contents of the expression above in it. As a first-class concern, we could now flesh out what it means to be a headless package (e.g., no sound or video, suitable for servers) and then Hydra would build these packages for us. Even though it's a full package set, the overrides would obviously only cause rebuilds of packages that use X or audio.
I was stumped for a while why my EC2 boxes were building so much stuff, and eventually I realized that the minimal.nix profile was overriding packages and causing me to have to rebuild a bunch of stuff.
Any objections to me adding something like
nixpkgs.headlessand then referring to that fromno-x-libs.nix? Or a better approach?cc @edolstra as overseer of the Hydra infrastructure (which would get stressed a bit more by building multiple copies of some packages that use X and audio)