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
35 firewall
36 ipv6
37 login
38 misc
39 nat
40 nfs3
41 openssh
42 proxy
43 simple;
44 installer = {
45 inherit (nixos'.tests.installer)
46 lvm
47 separateBoot
48 simple;
49 };
50 };
51 };
52
53 nixpkgs = {
54 inherit (nixpkgs')
55 apacheHttpd_2_2
56 apacheHttpd_2_4
57 cmake
58 cryptsetup
59 emacs
60 gettext
61 git
62 imagemagick
63 jdk
64 linux
65 mysql51
66 mysql55
67 nginx
68 nodejs
69 openssh
70 php
71 postgresql92
72 postgresql93
73 python
74 rsyslog
75 stdenv
76 subversion
77 tarball
78 vim;
79 };
80
81 tested = lib.hydraJob (pkgs.releaseTools.aggregate {
82 name = "nixos-${nixos.channel.version}";
83 meta = {
84 description = "Release-critical builds for the NixOS channel";
85 maintainers = [ lib.maintainers.eelco ];
86 };
87 constituents =
88 let all = x: map (system: x.${system}) supportedSystems; in
89 [ nixpkgs.tarball
90 (all nixpkgs.jdk)
91 ]
92 ++ lib.collect lib.isDerivation nixos;
93 });
94
95}