I've been hopping around Gentoo and Void the past few days with musl on both, and I'll be going back to NixOS in a bit due to not having enough time to set up either of them. I've realised how little RAM either systems use on musl, though, and I was wondering if there is any chance of replacing glibc with musl on NixOS?
Nixpkgs includes packages compiled for musl under the pkgsMusl prefix. For example, pkgs.pkgsMusl.hello. IIUC these only exist on a Linux system.
Maybe you can use those packages for everything by setting pkgsMusl as your package set. For example if you are using Home Manager with a flake config you normally have a line like,
let pkgs = nixpkgs.legacyPackages.${system};
Maybe you could change that to
let pkgs = nixpkgs.legacyPackages.${system}.pkgsMusl;
This technically exists but practically #musl is a third class citizen on #NixOS.
They don't run a hydra test set for package builds so core packages break all the time, dragging down the whole system.
Until there is an actual musl community forming in the NixOS space, I doubt anyone will have a good time using it for a complex system build.
Also keep in mind that there is no binary cache for musl builds (as far as I know), so if a core package gets an update, there goes your weekend. Due to the concepts of #Nix you basically run an emerge --empty-tree on a regular basis.
Nixpkgs includes packages compiled for musl under the
pkgsMusl
prefix. For example,pkgs.pkgsMusl.hello
. IIUC these only exist on a Linux system.Maybe you can use those packages for everything by setting
pkgsMusl
as your package set. For example if you are using Home Manager with a flake config you normally have a line like,Maybe you could change that to
This technically exists but practically #musl is a third class citizen on #NixOS. They don't run a hydra test set for package builds so core packages break all the time, dragging down the whole system. Until there is an actual musl community forming in the NixOS space, I doubt anyone will have a good time using it for a complex system build. Also keep in mind that there is no binary cache for musl builds (as far as I know), so if a core package gets an update, there goes your weekend. Due to the concepts of #Nix you basically run an
emerge --empty-tree
on a regular basis.