gnu guix is like nixos.
Files automatically installed into /etc by FHS-compliant package managers now have to be configured manually in the global declarative configuration file. The global declarative configuration often doesn’t provide a way to configure every little detail.
For example, /etc/pam.d/swaylock comes with FHS-compliant package managers. Now, it has to be configured manually with guix or nix. The declarative configuration may not allow you to configure pam-gnupg in /etc/pam.d/swaylock because it doesn’t account for pam-gnupg.
Because every little thing should be accounted for by nix or guix, core maintainers are now forced to approve declarative configuration options for every software package.
Forcing one small group to approve configuration options for every software package never scales well.
I propose potential solutions.
- Bundle package configuration options with packages. This way, individual package maintainers are now responsible for package configuration options. This also distributes maintenance workload among various private guix channels.
- Make guix or nix transparent to package executables. Package executables are automatically injected into FHS environment. If you want to modify /etc files, apply package transformation to modify /etc files in packages. Or, make it possible to inject files into a package’s FHS environment. This is more flexible than the first option because people now don’t have to write declarative options for every little thing.