1# This jobset is used to generate a NixOS channel that contains a
2# small subset of Nixpkgs, mostly useful for servers that need fast
3# security updates.
4
5{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
6, stableBranch ? false
7, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
8}:
9
10let
11
12 nixpkgsSrc = nixpkgs; # urgh
13
14 pkgs = import ./.. {};
15
16 lib = pkgs.lib;
17
18 nixos' = import ./release.nix {
19 inherit stableBranch supportedSystems;
20 nixpkgs = nixpkgsSrc;
21 };
22
23 nixpkgs' = builtins.removeAttrs (import ../pkgs/top-level/release.nix {
24 inherit supportedSystems;
25 nixpkgs = nixpkgsSrc;
26 }) [ "unstable" ];
27
28in rec {
29
30 nixos = {
31 inherit (nixos') channel manual iso_minimal dummy;
32 tests = {
33 inherit (nixos'.tests)
34 containers-imperative
35 containers-ipv4
36 firewall
37 ipv6
38 login
39 misc
40 nat
41 nfs3
42 openssh
43 proxy
44 simple;
45 installer = {
46 inherit (nixos'.tests.installer)
47 lvm
48 separateBoot
49 simple;
50 };
51 };
52 };
53
54 nixpkgs = {
55 inherit (nixpkgs')
56 apacheHttpd
57 cmake
58 cryptsetup
59 emacs
60 gettext
61 git
62 imagemagick
63 jdk
64 linux
65 mysql
66 nginx
67 nodejs
68 openssh
69 php
70 postgresql
71 python
72 rsyslog
73 stdenv
74 subversion
75 tarball
76 vim;
77 };
78
79 tested = lib.hydraJob (pkgs.releaseTools.aggregate {
80 name = "nixos-${nixos.channel.version}";
81 meta = {
82 description = "Release-critical builds for the NixOS channel";
83 maintainers = [ lib.maintainers.eelco ];
84 };
85 constituents =
86 let all = x: map (system: x.${system}) supportedSystems; in
87 [ nixpkgs.tarball
88 (all nixpkgs.jdk)
89 ]
90 ++ lib.collect lib.isDerivation nixos;
91 });
92
93}