summary refs log tree commit diff
path: root/nixos/release-small.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-09-25 00:22:27 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-10-09 16:34:50 +0200
commita0fd8e806688090b2d8d4778a52e845806c95de0 (patch)
tree444a1938c21beb4f2d02fc96c55a9a7ac3826bf6 /nixos/release-small.nix
parent1f284665fa0fd944d331d844f3e3a10ef351a876 (diff)
downloadnixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar.gz
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar.bz2
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar.lz
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar.xz
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.tar.zst
nixpkgs-a0fd8e806688090b2d8d4778a52e845806c95de0.zip
Add a jobset for a "nixos-small" channel
This channel only builds a small subset of Nixpkgs, mostly suitable
for servers. Since the channel update doesn't require thousands of
packages to be built first, it should provide much faster turnaround
in case of security updates.

(cherry picked from commit 2c7acc6731ad4b05b1bbc3e632cdfcad4560ac22)
Diffstat (limited to 'nixos/release-small.nix')
-rw-r--r--nixos/release-small.nix85
1 files changed, 85 insertions, 0 deletions
diff --git a/nixos/release-small.nix b/nixos/release-small.nix
new file mode 100644
index 00000000000..1f789a499aa
--- /dev/null
+++ b/nixos/release-small.nix
@@ -0,0 +1,85 @@
+# This jobset is used to generate a NixOS channel that contains a
+# small subset of Nixpkgs, mostly useful for servers that need fast
+# security updates.
+
+{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
+, stableBranch ? false
+, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
+}:
+
+let
+
+  nixpkgsSrc = nixpkgs; # urgh
+
+  pkgs = import ./.. {};
+
+  lib = pkgs.lib;
+
+  nixos' = import ./release.nix {
+    inherit stableBranch supportedSystems;
+    nixpkgs = nixpkgsSrc;
+  };
+
+  nixpkgs' = builtins.removeAttrs (import ../pkgs/top-level/release.nix {
+    inherit supportedSystems;
+    nixpkgs = nixpkgsSrc;
+  }) [ "unstable" ];
+
+in rec {
+
+  nixos = {
+    inherit (nixos') channel manual iso_minimal dummy;
+    tests = {
+      inherit (nixos'.tests)
+        containers
+        firewall
+        ipv6
+        login
+        misc
+        nat
+        nfs3
+        openssh
+        proxy
+        simple;
+      installer = {
+        inherit (nixos'.tests.installer)
+          grub1
+          lvm
+          separateBoot
+          simple;
+      };
+    };
+  };
+
+  nixpkgs = {
+    inherit (nixpkgs')
+      apacheHttpd_2_2
+      apacheHttpd_2_4
+      emacs
+      gd
+      mysql51
+      mysql55
+      nginx
+      openssh
+      php
+      postgresql92
+      postgresql93
+      python
+      rsyslog
+      stdenv
+      tarball
+      vim;
+  };
+
+  tested = pkgs.releaseTools.aggregate {
+    name = "nixos-${nixos.channel.version}";
+    meta = {
+      description = "Release-critical builds for the NixOS channel";
+      maintainers = [ lib.maintainers.eelco ];
+    };
+    constituents =
+      let all = x: map (system: x.${system}) supportedSystems; in
+      [ nixpkgs.tarball ] ++ lib.collect lib.isDerivation nixos;
+  };
+
+}