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_2_2
57 apacheHttpd_2_4
58 cmake
59 cryptsetup
60 emacs
61 gettext
62 git
63 imagemagick
64 jdk
65 linux
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}