1 /* This file defines the builds that constitute the Nixpkgs.
2 Everything defined here ends up in the Nixpkgs channel. Individual
3 jobs can be tested by running:
5 $ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
9 $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
11 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
12 , officialRelease ? false
13 # The platforms for which we build Nixpkgs.
14 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
15 , limitedSupportedSystems ? [ "i686-linux" ]
16 # Strip most of attributes when evaluating to spare memory usage
18 # Attributes passed to nixpkgs. Don't build packages marked as unfree.
19 , nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
22 with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
26 systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
28 supportDarwin = lib.genAttrs [
31 ] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport);
34 { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
36 metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
38 manual = import ../../doc { inherit pkgs nixpkgs; };
39 lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
40 pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
42 darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
43 { name = "nixpkgs-darwin-${jobs.tarball.version}";
44 meta.description = "Release-critical builds for the Nixpkgs darwin channel";
47 jobs.cabal2nix.x86_64-darwin
48 jobs.ghc.x86_64-darwin
49 jobs.git.x86_64-darwin
51 jobs.mariadb.x86_64-darwin
52 jobs.nix.x86_64-darwin
53 jobs.nixpkgs-review.x86_64-darwin
54 jobs.nix-info.x86_64-darwin
55 jobs.nix-info-tested.x86_64-darwin
56 jobs.openssh.x86_64-darwin
57 jobs.openssl.x86_64-darwin
58 jobs.pandoc.x86_64-darwin
59 jobs.postgresql.x86_64-darwin
60 jobs.python3.x86_64-darwin
61 jobs.ruby.x86_64-darwin
62 jobs.rustc.x86_64-darwin
63 # blocking ofBorg CI 2020-02-28
64 # jobs.stack.x86_64-darwin
65 jobs.stdenv.x86_64-darwin
66 jobs.vim.x86_64-darwin
67 jobs.cachix.x86_64-darwin
70 # jobs.firefox-unwrapped.x86_64-darwin
71 jobs.qt5.qtmultimedia.x86_64-darwin
72 jobs.inkscape.x86_64-darwin
73 jobs.gimp.x86_64-darwin
74 jobs.emacs.x86_64-darwin
75 jobs.wireshark.x86_64-darwin
76 jobs.transmission-gtk.x86_64-darwin
80 jobs.tests.cc-wrapper.x86_64-darwin
81 jobs.tests.cc-wrapper-clang.x86_64-darwin
82 jobs.tests.cc-wrapper-libcxx.x86_64-darwin
83 jobs.tests.stdenv-inputs.x86_64-darwin
84 jobs.tests.macOSSierraShared.x86_64-darwin
85 jobs.tests.patch-shebangs.x86_64-darwin
90 unstable = pkgs.releaseTools.aggregate
91 { name = "nixpkgs-${jobs.tarball.version}";
92 meta.description = "Release-critical builds for the Nixpkgs unstable channel";
99 jobs.stdenv.x86_64-linux
100 jobs.cargo.x86_64-linux
102 jobs.linux.x86_64-linux
103 jobs.pandoc.x86_64-linux
104 jobs.python3.x86_64-linux
105 # Needed by contributors to test PRs (by inclusion of the PR template)
106 jobs.nixpkgs-review.x86_64-linux
108 jobs.nix-info.x86_64-linux
109 jobs.nix-info-tested.x86_64-linux
110 # Ensure that X11/GTK are in order.
111 jobs.firefox-unwrapped.x86_64-linux
112 jobs.cachix.x86_64-linux
115 jobs.tests.cc-wrapper.x86_64-linux
116 jobs.tests.cc-wrapper-gcc7.x86_64-linux
117 jobs.tests.cc-wrapper-gcc8.x86_64-linux
119 # broken see issue #40038
121 jobs.tests.cc-wrapper-clang.x86_64-linux
122 jobs.tests.cc-wrapper-libcxx.x86_64-linux
123 jobs.tests.cc-wrapper-clang-5.x86_64-linux
124 jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
125 jobs.tests.cc-wrapper-clang-6.x86_64-linux
126 jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
127 jobs.tests.cc-multilib-gcc.x86_64-linux
128 jobs.tests.cc-multilib-clang.x86_64-linux
129 jobs.tests.stdenv-inputs.x86_64-linux
130 jobs.tests.patch-shebangs.x86_64-linux
133 ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
134 ++ lib.optionals supportDarwin.x86_64 [
135 jobs.stdenv.x86_64-darwin
136 jobs.cargo.x86_64-darwin
137 jobs.cachix.x86_64-darwin
138 jobs.go.x86_64-darwin
139 jobs.python3.x86_64-darwin
140 jobs.nixpkgs-review.x86_64-darwin
141 jobs.nix-info.x86_64-darwin
142 jobs.nix-info-tested.x86_64-darwin
143 jobs.git.x86_64-darwin
144 jobs.mariadb.x86_64-darwin
145 jobs.vim.x86_64-darwin
146 jobs.inkscape.x86_64-darwin
147 jobs.qt5.qtmultimedia.x86_64-darwin
149 jobs.tests.cc-wrapper.x86_64-darwin
150 jobs.tests.cc-wrapper-gcc7.x86_64-darwin
151 # jobs.tests.cc-wrapper-gcc8.x86_64-darwin
152 jobs.tests.cc-wrapper-clang.x86_64-darwin
153 jobs.tests.cc-wrapper-libcxx.x86_64-darwin
154 jobs.tests.cc-wrapper-clang-5.x86_64-darwin
155 jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
156 jobs.tests.cc-wrapper-clang-6.x86_64-darwin
157 jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
158 jobs.tests.stdenv-inputs.x86_64-darwin
159 jobs.tests.macOSSierraShared.x86_64-darwin
160 jobs.tests.patch-shebangs.x86_64-darwin
165 stdenvBootstrapTools = with lib;
166 genAttrs systemsWithAnySupport
169 (import ../stdenv/linux/make-bootstrap-tools.nix {
170 pkgs = import ../.. {
171 localSystem = { inherit system; };
176 # darwin is special in this
177 // optionalAttrs supportDarwin.x86_64 {
180 bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
181 localSystem = { system = "x86_64-darwin"; };
184 # Lightweight distribution and test
185 inherit (bootstrap) dist test;
186 # Test a full stdenv bootstrap from the bootstrap tools definition
187 inherit (bootstrap.test-pkgs) stdenv;
189 } // optionalAttrs supportDarwin.aarch64 {
190 # Cross compiled bootstrap tools
193 bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
194 localSystem = { system = "x86_64-darwin"; };
195 crossSystem = { system = "aarch64-darwin"; };
198 # Distribution only for now
199 inherit (bootstrap) dist;
205 # Do not allow attribute collision between jobs inserted in
206 # 'nonPackageAttrs' and jobs pulled in from 'pkgs'.
207 # Conflicts usually cause silent job drops like in
208 # https://github.com/NixOS/nixpkgs/pull/182058
209 jobs = lib.attrsets.unionOfDisjoint
211 (mapTestOn ((packagePlatforms pkgs) // {
212 haskell.compiler = packagePlatforms pkgs.haskell.compiler;
213 haskellPackages = packagePlatforms pkgs.haskellPackages;
214 idrisPackages = packagePlatforms pkgs.idrisPackages;
215 agdaPackages = packagePlatforms pkgs.agdaPackages;
217 pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
218 pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
219 pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
221 tests = packagePlatforms pkgs.tests;
223 # Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
225 #emacsPackages = packagePlatforms pkgs.emacsPackages;
226 #rPackages = packagePlatforms pkgs.rPackages;
230 darwin = packagePlatforms pkgs.darwin // {