diff --git a/modules/config/gnu.nix b/modules/config/gnu.nix new file mode 100644 index 00000000000..43fcf71977d --- /dev/null +++ b/modules/config/gnu.nix @@ -0,0 +1,47 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + options = { + gnu = mkOption { + default = false; + description = + '' When enable, GNU software is chosent by default whenever a there is + a choice between GNU and non-GNU software (e.g., GNU lsh + vs. OpenSSH). + ''; + }; + }; + + require = + [ ../installer/grub/grub.nix + ../services/networking/ssh/sshd.nix + ../services/networking/ssh/lshd.nix + ]; + + config = mkIf config.gnu { + + environment.systemPackages = with pkgs; + # TODO: Adjust `requiredPackages' from `system-path.nix'. + # TODO: Add Inetutils once it has the new `ifconfig'. + [ grub2 parted fdisk + nano zile + texinfo # for the stand-alone Info reader + ]; + + # GNU GRUB. + boot.loader.grub.enable = true; + boot.loader.grub.version = 2; + + # GNU lsh. + services.openssh.enable = false; + services.lshd.enable = true; + services.xserver.startOpenSSHAgent = false; + services.xserver.startGnuPGAgent = true; + + # TODO: GNU dico. + # TODO: GNU Inetutils' inetd. + # TODO: GNU Pies. + }; +} diff --git a/modules/module-list.nix b/modules/module-list.nix index e51237f1ca0..3cf8096dac1 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -1,4 +1,5 @@ [ ./config/fonts.nix + ./config/gnu.nix ./config/i18n.nix ./config/krb5.nix ./config/ldap.nix