| 
									
										
										
										
											2018-09-08 21:49:08 +00:00
										 |  |  |  | with import ../lib; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | { nixpkgs ? { outPath = cleanSource ./..; revCount = 130979; shortRev = "gfedcba"; } | 
					
						
							| 
									
										
										
										
											2013-10-10 12:16:20 +02:00
										 |  |  |  | , stableBranch ? false | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  | , supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] | 
					
						
							| 
									
										
										
										
											2018-09-08 21:49:12 +00:00
										 |  |  |  | , configuration ? {} | 
					
						
							| 
									
										
										
										
											2012-04-09 12:49:03 +00:00
										 |  |  |  | }: | 
					
						
							| 
									
										
										
										
											2012-04-05 13:00:30 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-16 18:29:43 +02:00
										 |  |  |  | with import ../pkgs/top-level/release-lib.nix { inherit supportedSystems; }; | 
					
						
							| 
									
										
										
										
											2015-03-20 19:23:55 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | let | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-31 22:05:38 +09:00
										 |  |  |  |   version = fileContents ../.version; | 
					
						
							| 
									
										
										
										
											2013-10-10 12:16:20 +02:00
										 |  |  |  |   versionSuffix = | 
					
						
							| 
									
										
										
										
											2014-05-01 14:52:07 +02:00
										 |  |  |  |     (if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}"; | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-11 20:30:07 +09:00
										 |  |  |  |   # Run the tests for each platform.  You can run a test by doing | 
					
						
							|  |  |  |  |   # e.g. ‘nix-build -A tests.login.x86_64-linux’, or equivalently, | 
					
						
							|  |  |  |  |   # ‘nix-build tests/login.nix -A result’. | 
					
						
							|  |  |  |  |   allTestsForSystem = system: | 
					
						
							|  |  |  |  |     import ./tests/all-tests.nix { | 
					
						
							|  |  |  |  |       inherit system; | 
					
						
							|  |  |  |  |       pkgs = import nixpkgs { inherit system; }; | 
					
						
							|  |  |  |  |       callTest = t: { | 
					
						
							|  |  |  |  |         ${system} = hydraJob t.test; | 
					
						
							|  |  |  |  |       }; | 
					
						
							|  |  |  |  |     }; | 
					
						
							|  |  |  |  |   allTests = | 
					
						
							|  |  |  |  |     foldAttrs recursiveUpdate {} (map allTestsForSystem supportedSystems); | 
					
						
							| 
									
										
										
										
											2014-04-14 14:02:44 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 15:48:39 +02:00
										 |  |  |  |   pkgs = import nixpkgs { system = "x86_64-linux"; }; | 
					
						
							| 
									
										
										
										
											2012-04-10 20:28:06 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-02 13:33:27 +02:00
										 |  |  |  |   versionModule = | 
					
						
							| 
									
										
										
										
											2017-04-01 00:00:00 +00:00
										 |  |  |  |     { system.nixos.versionSuffix = versionSuffix; | 
					
						
							|  |  |  |  |       system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev; | 
					
						
							| 
									
										
										
										
											2013-10-24 19:58:34 +02:00
										 |  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2013-07-02 13:33:27 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |   makeModules = module: rest: [ configuration versionModule module rest ]; | 
					
						
							| 
									
										
										
										
											2013-07-02 13:33:27 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  |   makeIso = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     { module, type, system, ... }: | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 15:48:39 +02:00
										 |  |  |  |     with import nixpkgs { inherit system; }; | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-15 13:48:45 +01:00
										 |  |  |  |     hydraJob ((import lib/eval-config.nix { | 
					
						
							|  |  |  |  |       inherit system; | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |       modules = makeModules module { | 
					
						
							|  |  |  |  |         isoImage.isoBaseName = "nixos-${type}"; | 
					
						
							|  |  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2016-03-15 13:48:45 +01:00
										 |  |  |  |     }).config.system.build.isoImage); | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-31 20:30:08 +03:00
										 |  |  |  |   makeSdImage = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     { module, system, ... }: | 
					
						
							| 
									
										
										
										
											2018-03-31 20:30:08 +03:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     with import nixpkgs { inherit system; }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     hydraJob ((import lib/eval-config.nix { | 
					
						
							|  |  |  |  |       inherit system; | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |       modules = makeModules module {}; | 
					
						
							| 
									
										
										
										
											2018-03-31 20:30:08 +03:00
										 |  |  |  |     }).config.system.build.sdImage); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  |   makeSystemTarball = | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |     { module, maintainers ? ["viric"], system }: | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 15:48:39 +02:00
										 |  |  |  |     with import nixpkgs { inherit system; }; | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     let | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       config = (import lib/eval-config.nix { | 
					
						
							| 
									
										
										
										
											2012-03-04 20:57:34 +00:00
										 |  |  |  |         inherit system; | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |         modules = makeModules module {}; | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  |       }).config; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       tarball = config.system.build.tarball; | 
					
						
							| 
									
										
										
										
											2013-07-02 13:33:27 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  |     in | 
					
						
							|  |  |  |  |       tarball // | 
					
						
							|  |  |  |  |         { meta = { | 
					
						
							| 
									
										
										
										
											2018-08-20 15:18:07 -04:00
										 |  |  |  |             description = "NixOS system tarball for ${system} - ${stdenv.hostPlatform.platform.name}"; | 
					
						
							| 
									
										
										
										
											2015-03-20 19:23:55 +01:00
										 |  |  |  |             maintainers = map (x: lib.maintainers.${x}) maintainers; | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  |           }; | 
					
						
							|  |  |  |  |           inherit config; | 
					
						
							|  |  |  |  |         }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-18 16:21:00 +02:00
										 |  |  |  |   makeClosure = module: buildFromConfig module (config: config.system.build.toplevel); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-20 19:23:55 +01:00
										 |  |  |  |   buildFromConfig = module: sel: forAllSystems (system: hydraJob (sel (import ./lib/eval-config.nix { | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |     inherit system; | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |     modules = makeModules module | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |       ({ ... }: | 
					
						
							| 
									
										
										
										
											2015-03-20 19:23:55 +01:00
										 |  |  |  |       { fileSystems."/".device  = mkDefault "/dev/sda1"; | 
					
						
							|  |  |  |  |         boot.loader.grub.device = mkDefault "/dev/sda"; | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2014-09-18 16:21:00 +02:00
										 |  |  |  |   }).config)); | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-08 21:49:06 +00:00
										 |  |  |  |   makeNetboot = { module, system, ... }: | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  |     let | 
					
						
							| 
									
										
										
										
											2018-09-08 21:49:06 +00:00
										 |  |  |  |       configEvaled = import lib/eval-config.nix { | 
					
						
							|  |  |  |  |         inherit system; | 
					
						
							| 
									
										
										
										
											2018-11-07 09:07:38 +00:00
										 |  |  |  |         modules = makeModules module {}; | 
					
						
							| 
									
										
										
										
											2018-09-08 21:49:06 +00:00
										 |  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2018-01-11 18:46:49 +02:00
										 |  |  |  |       build = configEvaled.config.system.build; | 
					
						
							| 
									
										
										
										
											2018-08-20 15:18:07 -04:00
										 |  |  |  |       kernelTarget = configEvaled.pkgs.stdenv.hostPlatform.platform.kernelTarget; | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  |     in | 
					
						
							|  |  |  |  |       pkgs.symlinkJoin { | 
					
						
							| 
									
										
										
										
											2018-01-11 18:46:49 +02:00
										 |  |  |  |         name = "netboot"; | 
					
						
							|  |  |  |  |         paths = [ | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  |           build.netbootRamdisk | 
					
						
							|  |  |  |  |           build.kernel | 
					
						
							|  |  |  |  |           build.netbootIpxeScript | 
					
						
							|  |  |  |  |         ]; | 
					
						
							|  |  |  |  |         postBuild = ''
 | 
					
						
							|  |  |  |  |           mkdir -p $out/nix-support | 
					
						
							| 
									
										
										
										
											2018-07-25 14:07:58 +02:00
										 |  |  |  |           echo "file ${kernelTarget} ${build.kernel}/${kernelTarget}" >> $out/nix-support/hydra-build-products | 
					
						
							|  |  |  |  |           echo "file initrd ${build.netbootRamdisk}/initrd" >> $out/nix-support/hydra-build-products | 
					
						
							|  |  |  |  |           echo "file ipxe ${build.netbootIpxeScript}/netboot.ipxe" >> $out/nix-support/hydra-build-products | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  |         '';
 | 
					
						
							| 
									
										
										
										
											2018-01-11 18:47:23 +02:00
										 |  |  |  |         preferLocalBuild = true; | 
					
						
							| 
									
										
										
										
											2017-04-14 17:59:54 -04:00
										 |  |  |  |       }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-24 19:31:51 +02:00
										 |  |  |  | in rec { | 
					
						
							| 
									
										
										
										
											2008-12-17 13:25:23 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 21:55:29 -04:00
										 |  |  |  |   channel = import lib/make-channel.nix { inherit pkgs nixpkgs version versionSuffix; }; | 
					
						
							| 
									
										
										
										
											2009-08-31 14:56:19 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 19:17:44 +00:00
										 |  |  |  |   manualHTML = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualHTML); | 
					
						
							|  |  |  |  |   manual = manualHTML; # TODO(@oxij): remove eventually | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |   manualEpub = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualEpub)); | 
					
						
							|  |  |  |  |   manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages); | 
					
						
							|  |  |  |  |   manualGeneratedSources = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.generatedSources); | 
					
						
							|  |  |  |  |   options = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux; | 
					
						
							| 
									
										
										
										
											2016-02-03 12:16:33 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-09 18:40:37 +02:00
										 |  |  |  |   # Build the initial ramdisk so Hydra can keep track of its size over time. | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |   initialRamdisk = buildFromConfig ({ ... }: { }) (config: config.system.build.initialRamdisk); | 
					
						
							| 
									
										
										
										
											2014-10-09 18:40:37 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-19 21:29:48 -04:00
										 |  |  |  |   netboot = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeNetboot { | 
					
						
							| 
									
										
										
										
											2018-09-08 21:49:06 +00:00
										 |  |  |  |     module = ./modules/installer/netboot/netboot-minimal.nix; | 
					
						
							| 
									
										
										
										
											2018-01-16 18:42:47 +02:00
										 |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2016-04-08 13:53:27 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-31 08:48:57 +01:00
										 |  |  |  |   iso_minimal = forAllSystems (system: makeIso { | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |     module = ./modules/installer/cd-dvd/installation-cd-minimal.nix; | 
					
						
							|  |  |  |  |     type = "minimal"; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							| 
									
										
										
										
											2013-04-06 18:24:12 +02:00
										 |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-19 21:29:48 -04:00
										 |  |  |  |   iso_graphical = forMatchingSystems [ "x86_64-linux" ] (system: makeIso { | 
					
						
							| 
									
										
										
										
											2015-10-08 14:53:37 +02:00
										 |  |  |  |     module = ./modules/installer/cd-dvd/installation-cd-graphical-kde.nix; | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |     type = "graphical"; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   # A variant with a more recent (but possibly less stable) kernel | 
					
						
							|  |  |  |  |   # that might support more hardware. | 
					
						
							| 
									
										
										
										
											2018-12-19 13:10:48 -05:00
										 |  |  |  |   iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso { | 
					
						
							| 
									
										
										
										
											2014-06-05 16:00:25 -05:00
										 |  |  |  |     module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix; | 
					
						
							|  |  |  |  |     type = "minimal-new-kernel"; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-15 05:32:59 +03:00
										 |  |  |  |   sd_image = forMatchingSystems [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ] (system: makeSdImage { | 
					
						
							|  |  |  |  |     module = { | 
					
						
							|  |  |  |  |         armv6l-linux = ./modules/installer/cd-dvd/sd-image-raspberrypi.nix; | 
					
						
							|  |  |  |  |         armv7l-linux = ./modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix; | 
					
						
							|  |  |  |  |         aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64.nix; | 
					
						
							|  |  |  |  |       }.${system}; | 
					
						
							| 
									
										
										
										
											2018-03-31 20:30:08 +03:00
										 |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 18:58:04 -05:00
										 |  |  |  |   sd_image_new_kernel = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage { | 
					
						
							|  |  |  |  |     module = { | 
					
						
							|  |  |  |  |         aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64-new-kernel.nix; | 
					
						
							|  |  |  |  |       }.${system}; | 
					
						
							|  |  |  |  |     type = "minimal-new-kernel"; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-08 15:40:48 +02:00
										 |  |  |  |   # A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF). | 
					
						
							| 
									
										
										
										
											2018-03-19 21:29:48 -04:00
										 |  |  |  |   ova = forMatchingSystems [ "x86_64-linux" ] (system: | 
					
						
							| 
									
										
										
										
											2013-08-26 14:06:00 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 15:48:39 +02:00
										 |  |  |  |     with import nixpkgs { inherit system; }; | 
					
						
							| 
									
										
										
										
											2013-07-02 00:23:48 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-15 13:34:41 +01:00
										 |  |  |  |     hydraJob ((import lib/eval-config.nix { | 
					
						
							|  |  |  |  |       inherit system; | 
					
						
							|  |  |  |  |       modules = | 
					
						
							|  |  |  |  |         [ versionModule | 
					
						
							|  |  |  |  |           ./modules/installer/virtualbox-demo.nix | 
					
						
							|  |  |  |  |         ]; | 
					
						
							|  |  |  |  |     }).config.system.build.virtualBoxOVA) | 
					
						
							| 
									
										
										
										
											2013-08-26 14:06:00 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   ); | 
					
						
							| 
									
										
										
										
											2013-07-02 00:23:48 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-25 00:20:53 +02:00
										 |  |  |  |   # Ensure that all packages used by the minimal NixOS config end up in the channel. | 
					
						
							|  |  |  |  |   dummy = forAllSystems (system: pkgs.runCommand "dummy" | 
					
						
							| 
									
										
										
										
											2014-09-25 17:51:09 +02:00
										 |  |  |  |     { toplevel = (import lib/eval-config.nix { | 
					
						
							| 
									
										
										
										
											2014-09-25 00:20:53 +02:00
										 |  |  |  |         inherit system; | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |         modules = singleton ({ ... }: | 
					
						
							| 
									
										
										
										
											2015-03-20 19:23:55 +01:00
										 |  |  |  |           { fileSystems."/".device  = mkDefault "/dev/sda1"; | 
					
						
							|  |  |  |  |             boot.loader.grub.device = mkDefault "/dev/sda"; | 
					
						
							| 
									
										
										
										
											2018-07-25 23:22:54 +03:00
										 |  |  |  |             system.stateVersion = mkDefault "18.03"; | 
					
						
							| 
									
										
										
										
											2014-09-25 17:51:09 +02:00
										 |  |  |  |           }); | 
					
						
							|  |  |  |  |       }).config.system.build.toplevel; | 
					
						
							| 
									
										
										
										
											2015-12-29 17:21:49 +01:00
										 |  |  |  |       preferLocalBuild = true; | 
					
						
							| 
									
										
										
										
											2014-09-25 00:20:53 +02:00
										 |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2014-09-25 17:51:09 +02:00
										 |  |  |  |     "mkdir $out; ln -s $toplevel $out/dummy"); | 
					
						
							| 
									
										
										
										
											2014-09-25 00:20:53 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |   # Provide a tarball that can be unpacked into an SD card, and easily | 
					
						
							|  |  |  |  |   # boot that system from uboot (like for the sheevaplug). | 
					
						
							|  |  |  |  |   # The pc variant helps preparing the expression for the system tarball | 
					
						
							|  |  |  |  |   # in a machine faster than the sheevpalug | 
					
						
							| 
									
										
										
										
											2015-06-15 14:18:27 +02:00
										 |  |  |  |   /*
 | 
					
						
							| 
									
										
										
										
											2013-10-31 08:48:57 +01:00
										 |  |  |  |   system_tarball_pc = forAllSystems (system: makeSystemTarball { | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |     module = ./modules/installer/cd-dvd/system-tarball-pc.nix; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-06-15 14:18:27 +02:00
										 |  |  |  |   */ | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-11 22:58:17 +01:00
										 |  |  |  |   # Provide container tarball for lxc, libvirt-lxc, docker-lxc, ... | 
					
						
							| 
									
										
										
										
											2014-12-12 20:28:01 +01:00
										 |  |  |  |   containerTarball = forAllSystems (system: makeSystemTarball { | 
					
						
							| 
									
										
										
										
											2014-12-11 22:58:17 +01:00
										 |  |  |  |     module = ./modules/virtualisation/lxc-container.nix; | 
					
						
							|  |  |  |  |     inherit system; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |   /*
 | 
					
						
							|  |  |  |  |   system_tarball_fuloong2f = | 
					
						
							|  |  |  |  |     assert builtins.currentSystem == "mips64-linux"; | 
					
						
							|  |  |  |  |     makeSystemTarball { | 
					
						
							|  |  |  |  |       module = ./modules/installer/cd-dvd/system-tarball-fuloong2f.nix; | 
					
						
							|  |  |  |  |       system = "mips64-linux"; | 
					
						
							| 
									
										
										
										
											2011-11-08 19:51:39 +00:00
										 |  |  |  |     }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |   system_tarball_sheevaplug = | 
					
						
							|  |  |  |  |     assert builtins.currentSystem == "armv5tel-linux"; | 
					
						
							|  |  |  |  |     makeSystemTarball { | 
					
						
							|  |  |  |  |       module = ./modules/installer/cd-dvd/system-tarball-sheevaplug.nix; | 
					
						
							|  |  |  |  |       system = "armv5tel-linux"; | 
					
						
							| 
									
										
										
										
											2012-03-16 12:24:29 +00:00
										 |  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  |   */ | 
					
						
							| 
									
										
										
										
											2012-02-23 12:00:05 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-11 20:30:07 +09:00
										 |  |  |  |   tests = allTests; | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   /* Build a bunch of typical closures so that Hydra can keep track of
 | 
					
						
							|  |  |  |  |      the evolution of closure sizes. */ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   closures = { | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     smallContainer = makeClosure ({ ... }: | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       { boot.isContainer = true; | 
					
						
							|  |  |  |  |         services.openssh.enable = true; | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     tinyContainer = makeClosure ({ ... }: | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       { boot.isContainer = true; | 
					
						
							|  |  |  |  |         imports = [ modules/profiles/minimal.nix ]; | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     ec2 = makeClosure ({ ... }: | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       { imports = [ modules/virtualisation/amazon-image.nix ]; | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     kde = makeClosure ({ ... }: | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       { services.xserver.enable = true; | 
					
						
							| 
									
										
										
										
											2017-02-09 21:25:03 -05:00
										 |  |  |  |         services.xserver.displayManager.sddm.enable = true; | 
					
						
							| 
									
										
										
										
											2017-03-03 07:24:58 -06:00
										 |  |  |  |         services.xserver.desktopManager.plasma5.enable = true; | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |  |     xfce = makeClosure ({ ... }: | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |       { services.xserver.enable = true; | 
					
						
							|  |  |  |  |         services.xserver.desktopManager.xfce.enable = true; | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     # Linux/Apache/PostgreSQL/PHP stack. | 
					
						
							|  |  |  |  |     lapp = makeClosure ({ pkgs, ... }: | 
					
						
							|  |  |  |  |       { services.httpd.enable = true; | 
					
						
							|  |  |  |  |         services.httpd.adminAddr = "foo@example.org"; | 
					
						
							|  |  |  |  |         services.postgresql.enable = true; | 
					
						
							| 
									
										
										
										
											2018-12-19 09:59:32 +01:00
										 |  |  |  |         services.postgresql.package = pkgs.postgresql; | 
					
						
							| 
									
										
										
										
											2014-08-22 11:37:31 +02:00
										 |  |  |  |         environment.systemPackages = [ pkgs.php ]; | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2013-03-26 14:00:31 +01:00
										 |  |  |  | } |