| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  | { config, pkgs, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with pkgs.lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   options = { | 
					
						
							|  |  |  |     gnu = mkOption { | 
					
						
							| 
									
										
										
										
											2013-10-30 17:37:45 +01:00
										 |  |  |       type = types.bool; | 
					
						
							| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  |       default = false; | 
					
						
							|  |  |  |       description = | 
					
						
							| 
									
										
										
										
											2013-08-10 21:07:13 +00:00
										 |  |  |         '' When enabled, GNU software is chosen by default whenever a there is
 | 
					
						
							| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  |            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'. | 
					
						
							| 
									
										
										
										
											2012-04-24 12:54:42 +00:00
										 |  |  |       [ parted | 
					
						
							|  |  |  |         #fdisk  # XXX: GNU fdisk currently fails to build and it's redundant | 
					
						
							|  |  |  |                 # with the `parted' command. | 
					
						
							| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  |         nano zile | 
					
						
							|  |  |  |         texinfo # for the stand-alone Info reader | 
					
						
							| 
									
										
										
										
											2011-01-29 23:07:06 +00:00
										 |  |  |       ] | 
					
						
							| 
									
										
										
										
											2011-01-30 16:13:47 +00:00
										 |  |  |       ++ stdenv.lib.optional (!stdenv.isArm) grub2; | 
					
						
							| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-29 23:07:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # GNU GRUB, where available. | 
					
						
							| 
									
										
										
										
											2011-01-30 17:27:24 +00:00
										 |  |  |     boot.loader.grub.enable = !pkgs.stdenv.isArm; | 
					
						
							| 
									
										
										
										
											2010-03-11 17:02:57 +00:00
										 |  |  |     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. | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |