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 2c7acc6731)
This commit is contained in:
Eelco Dolstra 2014-09-25 00:22:27 +02:00
parent 1f284665fa
commit a0fd8e8066

85
nixos/release-small.nix Normal file
View File

@ -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;
};
}