10 # Prevent using top-level attrs to protect against introducing dependency on
11 # non-bootstrap packages by mistake. Any top-level inputs must be explicitly
13 (extra: lib.callPackageWith ({ inherit lib config buildPlatform hostPlatform fetchurl checkMeta; } // extra))
16 bash_2_05 = callPackage ./bash/2.nix { tinycc = tinycc-mes; };
18 bash = callPackage ./bash {
21 coreutils = coreutils-musl;
22 gnumake = gnumake-musl;
26 binutils = callPackage ./binutils {
28 gnumake = gnumake-musl;
32 bzip2 = callPackage ./bzip2 {
34 gnumake = gnumake-musl;
38 coreutils = callPackage ./coreutils { tinycc = tinycc-mes; };
39 coreutils-musl = callPackage ./coreutils/musl.nix {
42 gnumake = gnumake-musl;
46 diffutils = callPackage ./diffutils {
49 gnumake = gnumake-musl;
53 findutils = callPackage ./findutils {
55 gnumake = gnumake-musl;
59 gawk-mes = callPackage ./gawk/mes.nix {
65 gawk = callPackage ./gawk {
68 gnumake = gnumake-musl;
73 gcc46 = callPackage ./gcc/4.6.nix {
75 gnumake = gnumake-musl;
77 # FIXME: not sure why new gawk doesn't work
80 gcc46-cxx = callPackage ./gcc/4.6.cxx.nix {
82 gnumake = gnumake-musl;
84 # FIXME: not sure why new gawk doesn't work
88 gcc8 = callPackage ./gcc/8.nix {
90 gnumake = gnumake-musl;
91 gnutar = gnutar-latest;
92 # FIXME: not sure why new gawk doesn't work
96 gcc-latest = callPackage ./gcc/latest.nix {
98 gnumake = gnumake-musl;
99 gnutar = gnutar-latest;
100 # FIXME: not sure why new gawk doesn't work
104 gnugrep = callPackage ./gnugrep {
109 gnumake = callPackage ./gnumake { tinycc = tinycc-mes; };
111 gnumake-musl = callPackage ./gnumake/musl.nix {
113 tinycc = tinycc-musl;
115 gnumakeBoot = gnumake;
118 gnupatch = callPackage ./gnupatch { tinycc = tinycc-mes; };
120 gnused = callPackage ./gnused {
122 tinycc = tinycc-musl;
125 gnused-mes = callPackage ./gnused/mes.nix {
130 gnutar = callPackage ./gnutar/mes.nix {
136 gnutar-musl = callPackage ./gnutar/musl.nix {
138 tinycc = tinycc-musl;
142 # FIXME: better package naming scheme
143 gnutar-latest = callPackage ./gnutar/latest.nix {
145 gnumake = gnumake-musl;
146 gnutarBoot = gnutar-musl;
149 gzip = callPackage ./gzip {
155 heirloom = callPackage ./heirloom {
160 heirloom-devtools = callPackage ./heirloom-devtools { tinycc = tinycc-mes; };
162 linux-headers = callPackage ./linux-headers { bash = bash_2_05; };
164 ln-boot = callPackage ./ln-boot { };
166 mes = callPackage ./mes { };
167 mes-libc = callPackage ./mes/libc.nix { };
169 musl11 = callPackage ./musl/1.1.nix {
175 musl = callPackage ./musl {
177 gnumake = gnumake-musl;
180 stage0-posix = callPackage ./stage0-posix { };
182 inherit (self.stage0-posix) kaem m2libc mescc-tools mescc-tools-extra;
184 tinycc-bootstrappable = lib.recurseIntoAttrs (callPackage ./tinycc/bootstrappable.nix { });
185 tinycc-mes = lib.recurseIntoAttrs (callPackage ./tinycc/mes.nix { });
186 tinycc-musl = lib.recurseIntoAttrs (callPackage ./tinycc/musl.nix {
191 xz = callPackage ./xz {
193 tinycc = tinycc-musl;
194 gnumake = gnumake-musl;
195 gnutar = gnutar-musl;
198 inherit (callPackage ./utils.nix { }) derivationWithMeta writeTextFile writeText;
200 test = kaem.runCommand "minimal-bootstrap-test" {} ''
201 echo ${bash.tests.get-version}
202 echo ${bash_2_05.tests.get-version}
203 echo ${binutils.tests.get-version}
204 echo ${bzip2.tests.get-version}
205 echo ${coreutils-musl.tests.get-version}
206 echo ${diffutils.tests.get-version}
207 echo ${findutils.tests.get-version}
208 echo ${gawk-mes.tests.get-version}
209 echo ${gawk.tests.get-version}
210 echo ${gcc46.tests.get-version}
211 echo ${gcc46-cxx.tests.hello-world}
212 echo ${gcc8.tests.hello-world}
213 echo ${gcc-latest.tests.hello-world}
214 echo ${gnugrep.tests.get-version}
215 echo ${gnused.tests.get-version}
216 echo ${gnused-mes.tests.get-version}
217 echo ${gnutar.tests.get-version}
218 echo ${gnutar-musl.tests.get-version}
219 echo ${gnutar-latest.tests.get-version}
220 echo ${gzip.tests.get-version}
221 echo ${heirloom.tests.get-version}
222 echo ${mes.compiler.tests.get-version}
223 echo ${musl.tests.hello-world}
224 echo ${tinycc-mes.compiler.tests.chain}
225 echo ${tinycc-musl.compiler.tests.hello-world}
226 echo ${xz.tests.get-version}