| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | # This module defines the packages that appear in | 
					
						
							| 
									
										
										
										
											2012-07-16 11:27:59 -04:00
										 |  |  | # /run/current-system/sw. | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-04 15:47:44 +00:00
										 |  |  |   extraManpages = pkgs.runCommand "extra-manpages" { buildInputs = [ pkgs.help2man ]; } | 
					
						
							|  |  |  |     ''
 | 
					
						
							|  |  |  |       mkdir -p $out/share/man/man1 | 
					
						
							|  |  |  |       help2man ${pkgs.gnutar}/bin/tar > $out/share/man/man1/tar.1 | 
					
						
							|  |  |  |     '';
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-29 13:15:31 +00:00
										 |  |  |   requiredPackages = | 
					
						
							| 
									
										
										
										
											2013-10-28 16:28:04 +01:00
										 |  |  |     [ config.nix.package | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.acl | 
					
						
							|  |  |  |       pkgs.attr | 
					
						
							|  |  |  |       pkgs.bashInteractive # bash with ncurses support | 
					
						
							|  |  |  |       pkgs.bzip2 | 
					
						
							|  |  |  |       pkgs.coreutils | 
					
						
							|  |  |  |       pkgs.cpio | 
					
						
							|  |  |  |       pkgs.curl | 
					
						
							| 
									
										
										
										
											2009-06-12 11:12:46 +00:00
										 |  |  |       pkgs.diffutils | 
					
						
							| 
									
										
										
										
											2009-09-26 18:57:34 +00:00
										 |  |  |       pkgs.eject # HAL depends on it anyway | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.findutils | 
					
						
							| 
									
										
										
										
											2009-06-12 11:12:46 +00:00
										 |  |  |       pkgs.gawk | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.glibc # for ldd, getent | 
					
						
							|  |  |  |       pkgs.gnugrep | 
					
						
							| 
									
										
										
										
											2009-06-12 11:12:46 +00:00
										 |  |  |       pkgs.gnupatch | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.gnused | 
					
						
							| 
									
										
										
										
											2012-03-04 15:47:44 +00:00
										 |  |  |       pkgs.gnutar | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.gzip | 
					
						
							| 
									
										
										
										
											2013-01-30 15:01:31 +01:00
										 |  |  |       pkgs.xz | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.less | 
					
						
							|  |  |  |       pkgs.libcap | 
					
						
							|  |  |  |       pkgs.man | 
					
						
							|  |  |  |       pkgs.nano | 
					
						
							|  |  |  |       pkgs.ncurses | 
					
						
							|  |  |  |       pkgs.netcat | 
					
						
							|  |  |  |       pkgs.openssh | 
					
						
							|  |  |  |       pkgs.pciutils | 
					
						
							|  |  |  |       pkgs.perl | 
					
						
							|  |  |  |       pkgs.procps | 
					
						
							|  |  |  |       pkgs.rsync | 
					
						
							|  |  |  |       pkgs.strace | 
					
						
							|  |  |  |       pkgs.sysvtools | 
					
						
							| 
									
										
										
										
											2014-04-05 13:41:23 -05:00
										 |  |  |       pkgs.su | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       pkgs.time | 
					
						
							|  |  |  |       pkgs.usbutils | 
					
						
							| 
									
										
										
										
											2012-12-17 13:09:05 -05:00
										 |  |  |       pkgs.utillinux | 
					
						
							| 
									
										
										
										
											2013-01-30 15:01:31 +01:00
										 |  |  |       extraManpages | 
					
						
							| 
									
										
										
										
											2009-09-28 18:26:18 +00:00
										 |  |  |     ]; | 
					
						
							| 
									
										
										
										
											2009-06-05 12:57:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  | in | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |   options = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     environment = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       systemPackages = mkOption { | 
					
						
							| 
									
										
										
										
											2013-10-30 14:18:41 +01:00
										 |  |  |         type = types.listOf types.path; | 
					
						
							| 
									
										
										
										
											2009-09-28 18:26:18 +00:00
										 |  |  |         default = []; | 
					
						
							| 
									
										
										
										
											2014-08-27 22:44:56 +02:00
										 |  |  |         example = literalExample "[ pkgs.firefox pkgs.thunderbird ]"; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |         description = ''
 | 
					
						
							|  |  |  |           The set of packages that appear in | 
					
						
							| 
									
										
										
										
											2012-07-16 11:27:59 -04:00
										 |  |  |           /run/current-system/sw.  These packages are | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |           automatically available to all users, and are | 
					
						
							|  |  |  |           automatically updated every time you rebuild the system | 
					
						
							|  |  |  |           configuration.  (The latter is the main difference with | 
					
						
							|  |  |  |           installing them in the default profile, | 
					
						
							| 
									
										
										
										
											2011-10-30 15:19:58 +00:00
										 |  |  |           <filename>/nix/var/nix/profiles/default</filename>. | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       pathsToLink = mkOption { | 
					
						
							| 
									
										
										
										
											2013-10-30 14:18:41 +01:00
										 |  |  |         type = types.listOf types.str; | 
					
						
							| 
									
										
										
										
											2010-04-15 15:46:55 +00:00
										 |  |  |         # Note: We need `/lib' to be among `pathsToLink' for NSS modules | 
					
						
							|  |  |  |         # to work. | 
					
						
							| 
									
										
										
										
											2010-04-16 05:09:10 +00:00
										 |  |  |         default = []; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |         example = ["/"]; | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |         description = "List of directories to be symlinked in `/run/current-system/sw'."; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     system = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       path = mkOption { | 
					
						
							| 
									
										
										
										
											2013-10-23 16:59:33 +02:00
										 |  |  |         internal = true; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |         description = ''
 | 
					
						
							|  |  |  |           The packages you want in the boot environment. | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |   config = { | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |     environment.systemPackages = requiredPackages; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |     environment.pathsToLink = | 
					
						
							|  |  |  |       [ "/bin" | 
					
						
							|  |  |  |         "/etc/xdg" | 
					
						
							|  |  |  |         "/info" | 
					
						
							|  |  |  |         "/lib" | 
					
						
							|  |  |  |         "/man" | 
					
						
							|  |  |  |         "/sbin" | 
					
						
							|  |  |  |         "/share/emacs" | 
					
						
							| 
									
										
										
										
											2014-06-28 23:34:48 +03:00
										 |  |  |         "/share/vim-plugins" | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |         "/share/org" | 
					
						
							|  |  |  |         "/share/info" | 
					
						
							|  |  |  |         "/share/terminfo" | 
					
						
							|  |  |  |         "/share/man" | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-23 16:34:38 +02:00
										 |  |  |     system.path = pkgs.buildEnv { | 
					
						
							|  |  |  |       name = "system-path"; | 
					
						
							|  |  |  |       paths = config.environment.systemPackages; | 
					
						
							|  |  |  |       inherit (config.environment) pathsToLink; | 
					
						
							|  |  |  |       ignoreCollisions = true; | 
					
						
							|  |  |  |       # !!! Hacky, should modularise. | 
					
						
							|  |  |  |       postBuild = | 
					
						
							|  |  |  |         ''
 | 
					
						
							|  |  |  |           if [ -x $out/bin/update-mime-database -a -w $out/share/mime/packages ]; then | 
					
						
							| 
									
										
										
										
											2013-10-30 18:36:16 +01:00
										 |  |  |               XDG_DATA_DIRS=$out/share $out/bin/update-mime-database -V $out/share/mime > /dev/null | 
					
						
							| 
									
										
										
										
											2013-10-23 16:34:38 +02:00
										 |  |  |           fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if [ -x $out/bin/gtk-update-icon-cache -a -f $out/share/icons/hicolor/index.theme ]; then | 
					
						
							|  |  |  |               $out/bin/gtk-update-icon-cache $out/share/icons/hicolor | 
					
						
							|  |  |  |           fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then | 
					
						
							|  |  |  |               $out/bin/glib-compile-schemas $out/share/glib-2.0/schemas | 
					
						
							|  |  |  |           fi | 
					
						
							| 
									
										
										
										
											2014-04-12 16:30:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |           if [ -x $out/bin/update-desktop-database -a -w $out/share/applications ]; then | 
					
						
							|  |  |  |               $out/bin/update-desktop-database $out/share/applications | 
					
						
							|  |  |  |           fi | 
					
						
							| 
									
										
										
										
											2013-10-23 16:34:38 +02:00
										 |  |  |         '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:41:03 +00:00
										 |  |  | } |