fork
Configure Feed
Select the types of activity you want to include in your feed.
nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
fork
Configure Feed
Select the types of activity you want to include in your feed.
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:
4
5 $ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
6
7 e.g.
8
9 $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
10*/
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" "aarch64-darwin" ]
15, limitedSupportedSystems ? [ "i686-linux" ]
16 # Strip most of attributes when evaluating to spare memory usage
17, scrubJobs ? true
18 # Attributes passed to nixpkgs. Don't build packages marked as unfree.
19, nixpkgsArgs ? { config = {
20 allowUnfree = false;
21 inHydra = true;
22 permittedInsecurePackages = [
23 # *Exceptionally*, those packages will be cached with their *secure* dependents
24 # because they will reach EOL in the middle of the 23.05 release
25 # and it will be too much painful for our users to recompile them
26 # for no real reason.
27 # Remove them for 23.11.
28 "nodejs-16.20.0"
29 "openssl-1.1.1t"
30 ];
31 }; }
32}:
33
34with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
35
36let
37
38 systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
39
40 supportDarwin = lib.genAttrs [
41 "x86_64"
42 "aarch64"
43 ] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport);
44
45 nonPackageJobs =
46 { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
47
48 metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
49
50 manual = import ../../doc { inherit pkgs nixpkgs; };
51 lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
52 pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
53
54 darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
55 { name = "nixpkgs-darwin-${jobs.tarball.version}";
56 meta.description = "Release-critical builds for the Nixpkgs darwin channel";
57 constituents =
58 [ jobs.tarball
59 jobs.cabal2nix.x86_64-darwin
60 jobs.ghc.x86_64-darwin
61 jobs.git.x86_64-darwin
62 jobs.go.x86_64-darwin
63 jobs.mariadb.x86_64-darwin
64 jobs.nix.x86_64-darwin
65 jobs.nixpkgs-review.x86_64-darwin
66 jobs.nix-info.x86_64-darwin
67 jobs.nix-info-tested.x86_64-darwin
68 jobs.openssh.x86_64-darwin
69 jobs.openssl.x86_64-darwin
70 jobs.pandoc.x86_64-darwin
71 jobs.postgresql.x86_64-darwin
72 jobs.python3.x86_64-darwin
73 jobs.ruby.x86_64-darwin
74 jobs.rustc.x86_64-darwin
75 # blocking ofBorg CI 2020-02-28
76 # jobs.stack.x86_64-darwin
77 jobs.stdenv.x86_64-darwin
78 jobs.vim.x86_64-darwin
79 jobs.cachix.x86_64-darwin
80
81 # UI apps
82 # jobs.firefox-unwrapped.x86_64-darwin
83 jobs.qt5.qtmultimedia.x86_64-darwin
84 jobs.inkscape.x86_64-darwin
85 jobs.gimp.x86_64-darwin
86 jobs.emacs.x86_64-darwin
87 jobs.wireshark.x86_64-darwin
88 jobs.transmission-gtk.x86_64-darwin
89
90 # Tests
91 /*
92 jobs.tests.cc-wrapper.x86_64-darwin
93 jobs.tests.cc-wrapper-clang.x86_64-darwin
94 jobs.tests.cc-wrapper-libcxx.x86_64-darwin
95 jobs.tests.stdenv-inputs.x86_64-darwin
96 jobs.tests.macOSSierraShared.x86_64-darwin
97 jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
98 */
99 ];
100 } else null;
101
102 unstable = pkgs.releaseTools.aggregate
103 { name = "nixpkgs-${jobs.tarball.version}";
104 meta.description = "Release-critical builds for the Nixpkgs unstable channel";
105 constituents =
106 [ jobs.tarball
107 jobs.metrics
108 jobs.manual
109 jobs.lib-tests
110 jobs.pkgs-lib-tests
111 jobs.stdenv.x86_64-linux
112 jobs.cargo.x86_64-linux
113 jobs.go.x86_64-linux
114 jobs.linux.x86_64-linux
115 jobs.pandoc.x86_64-linux
116 jobs.python3.x86_64-linux
117 # Needed by contributors to test PRs (by inclusion of the PR template)
118 jobs.nixpkgs-review.x86_64-linux
119 # Needed for support
120 jobs.nix-info.x86_64-linux
121 jobs.nix-info-tested.x86_64-linux
122 # Ensure that X11/GTK are in order.
123 jobs.firefox-unwrapped.x86_64-linux
124 jobs.cachix.x86_64-linux
125
126 /*
127 jobs.tests.cc-wrapper.x86_64-linux
128 jobs.tests.cc-wrapper-gcc7.x86_64-linux
129 jobs.tests.cc-wrapper-gcc8.x86_64-linux
130
131 # broken see issue #40038
132
133 jobs.tests.cc-wrapper-clang.x86_64-linux
134 jobs.tests.cc-wrapper-libcxx.x86_64-linux
135 jobs.tests.cc-wrapper-clang-5.x86_64-linux
136 jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
137 jobs.tests.cc-wrapper-clang-6.x86_64-linux
138 jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
139 jobs.tests.cc-multilib-gcc.x86_64-linux
140 jobs.tests.cc-multilib-clang.x86_64-linux
141 jobs.tests.stdenv-inputs.x86_64-linux
142 jobs.tests.stdenv.hooks.patch-shebangs.x86_64-linux
143 */
144 ]
145 ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
146 ++ lib.optionals supportDarwin.x86_64 [
147 jobs.stdenv.x86_64-darwin
148 jobs.cargo.x86_64-darwin
149 jobs.cachix.x86_64-darwin
150 jobs.go.x86_64-darwin
151 jobs.python3.x86_64-darwin
152 jobs.nixpkgs-review.x86_64-darwin
153 jobs.nix-info.x86_64-darwin
154 jobs.nix-info-tested.x86_64-darwin
155 jobs.git.x86_64-darwin
156 jobs.mariadb.x86_64-darwin
157 jobs.vim.x86_64-darwin
158 jobs.inkscape.x86_64-darwin
159 jobs.qt5.qtmultimedia.x86_64-darwin
160 /*
161 jobs.tests.cc-wrapper.x86_64-darwin
162 jobs.tests.cc-wrapper-gcc7.x86_64-darwin
163 # jobs.tests.cc-wrapper-gcc8.x86_64-darwin
164 jobs.tests.cc-wrapper-clang.x86_64-darwin
165 jobs.tests.cc-wrapper-libcxx.x86_64-darwin
166 jobs.tests.cc-wrapper-clang-5.x86_64-darwin
167 jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
168 jobs.tests.cc-wrapper-clang-6.x86_64-darwin
169 jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
170 jobs.tests.stdenv-inputs.x86_64-darwin
171 jobs.tests.macOSSierraShared.x86_64-darwin
172 jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
173 */
174 ];
175 };
176
177 stdenvBootstrapTools = with lib;
178 genAttrs systemsWithAnySupport (system:
179 if hasSuffix "-linux" system then
180 let
181 bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix {
182 pkgs = import ../.. {
183 localSystem = { inherit system; };
184 };
185 };
186 in {
187 inherit (bootstrap) dist test;
188 }
189 else if hasSuffix "-darwin" system then
190 let
191 bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
192 localSystem = { inherit system; };
193 };
194 in {
195 # Lightweight distribution and test
196 inherit (bootstrap) dist test;
197 # Test a full stdenv bootstrap from the bootstrap tools definition
198 # TODO: Re-enable once the new bootstrap-tools are in place.
199 #inherit (bootstrap.test-pkgs) stdenv;
200 }
201 else
202 abort "No bootstrap implementation for system: ${system}"
203 );
204 };
205
206 # Do not allow attribute collision between jobs inserted in
207 # 'nonPackageAttrs' and jobs pulled in from 'pkgs'.
208 # Conflicts usually cause silent job drops like in
209 # https://github.com/NixOS/nixpkgs/pull/182058
210 jobs = lib.attrsets.unionOfDisjoint
211 nonPackageJobs
212 (mapTestOn ((packagePlatforms pkgs) // {
213 haskell.compiler = packagePlatforms pkgs.haskell.compiler;
214 haskellPackages = packagePlatforms pkgs.haskellPackages;
215 idrisPackages = packagePlatforms pkgs.idrisPackages;
216 agdaPackages = packagePlatforms pkgs.agdaPackages;
217
218 pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
219 pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
220 pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
221
222 tests = packagePlatforms pkgs.tests;
223
224 # Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
225
226 #emacsPackages = packagePlatforms pkgs.emacsPackages;
227 #rPackages = packagePlatforms pkgs.rPackages;
228 ocamlPackages = { };
229 perlPackages = { };
230
231 darwin = packagePlatforms pkgs.darwin // {
232 xcode = {};
233 };
234 } ));
235
236in jobs