47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, lib, pkgs, ... }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
{
 | 
						|
  options = {
 | 
						|
    gnu = mkOption {
 | 
						|
      type = types.bool;
 | 
						|
      default = false;
 | 
						|
      description = ''
 | 
						|
        When enabled, GNU software is chosen by default whenever a there is
 | 
						|
        a choice between GNU and non-GNU software (e.g., GNU lsh
 | 
						|
        vs. OpenSSH).
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  config = mkIf config.gnu {
 | 
						|
 | 
						|
    environment.systemPackages = with pkgs;
 | 
						|
      # TODO: Adjust `requiredPackages' from `system-path.nix'.
 | 
						|
      # TODO: Add Inetutils once it has the new `ifconfig'.
 | 
						|
      [ parted
 | 
						|
        #fdisk  # XXX: GNU fdisk currently fails to build and it's redundant
 | 
						|
                # with the `parted' command.
 | 
						|
        nano zile
 | 
						|
        texinfo # for the stand-alone Info reader
 | 
						|
      ]
 | 
						|
      ++ stdenv.lib.optional (!stdenv.isArm) grub2;
 | 
						|
 | 
						|
 | 
						|
    # GNU GRUB, where available.
 | 
						|
    boot.loader.grub.enable = !pkgs.stdenv.isArm;
 | 
						|
    boot.loader.grub.version = 2;
 | 
						|
 | 
						|
    # GNU lsh.
 | 
						|
    services.openssh.enable = false;
 | 
						|
    services.lshd.enable = true;
 | 
						|
    programs.ssh.startAgent = false;
 | 
						|
    services.xserver.startGnuPGAgent = true;
 | 
						|
 | 
						|
    # TODO: GNU dico.
 | 
						|
    # TODO: GNU Inetutils' inetd.
 | 
						|
    # TODO: GNU Pies.
 | 
						|
  };
 | 
						|
}
 |