nixpkgs/pkgs/os-specific/linux/minimal-bootstrap/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

159 lines
4.0 KiB
Nix
Raw Normal View History

{ lib
, config
, buildPlatform
, hostPlatform
, fetchurl
, checkMeta
}:
lib.makeScope
# Prevent using top-level attrs to protect against introducing dependency on
# non-bootstrap packages by mistake. Any top-level inputs must be explicitly
# declared here.
(extra: lib.callPackageWith ({ inherit lib config buildPlatform hostPlatform fetchurl checkMeta; } // extra))
(self: with self; {
bash_2_05 = callPackage ./bash/2.nix { tinycc = tinycc-mes; };
2023-07-23 04:51:08 +00:00
bash = callPackage ./bash {
bootBash = bash_2_05;
gcc = gcc2;
glibc = glibc22;
};
binutils = callPackage ./binutils {
bash = bash_2_05;
gcc = gcc2;
binutils = binutils-mes;
glibc = glibc22;
sed = heirloom.sed;
};
binutils-mes = callPackage ./binutils {
bash = bash_2_05;
tinycc = tinycc-mes;
sed = heirloom.sed;
mesBootstrap = true;
};
2023-05-22 04:58:11 +00:00
bzip2 = callPackage ./bzip2 {
bash = bash_2_05;
tinycc = tinycc-mes;
};
coreutils = callPackage ./coreutils { tinycc = tinycc-mes; };
diffutils = callPackage ./diffutils {
bash = bash_2_05;
gcc = gcc2;
glibc = glibc22;
};
2023-05-22 03:19:00 +00:00
gawk = callPackage ./gawk {
bash = bash_2_05;
tinycc = tinycc-mes;
gnused = gnused-mes;
2023-05-22 03:19:00 +00:00
};
gcc2 = callPackage ./gcc/2.nix {
bash = bash_2_05;
gcc = gcc2-mes;
binutils = binutils-mes;
glibc = glibc22;
};
gcc2-mes = callPackage ./gcc/2.nix {
bash = bash_2_05;
tinycc = tinycc-mes;
binutils = binutils-mes;
mesBootstrap = true;
};
inherit (callPackage ./glibc {
bash = bash_2_05;
gnused = gnused-mes;
}) glibc22;
2023-05-21 23:44:19 +00:00
gnugrep = callPackage ./gnugrep {
bash = bash_2_05;
tinycc = tinycc-mes;
};
gnumake = callPackage ./gnumake { tinycc = tinycc-mes; };
2023-05-10 06:24:46 +00:00
gnupatch = callPackage ./gnupatch { tinycc = tinycc-mes; };
gnused = callPackage ./gnused {
bash = bash_2_05;
gcc = gcc2;
glibc = glibc22;
gnused = gnused-mes;
};
gnused-mes = callPackage ./gnused {
bash = bash_2_05;
tinycc = tinycc-mes;
mesBootstrap = true;
};
2023-05-10 06:24:46 +00:00
2023-05-22 03:41:51 +00:00
gnutar = callPackage ./gnutar {
bash = bash_2_05;
tinycc = tinycc-mes;
gnused = gnused-mes;
2023-05-22 03:41:51 +00:00
};
2023-05-22 04:02:16 +00:00
gzip = callPackage ./gzip {
bash = bash_2_05;
tinycc = tinycc-mes;
gnused = gnused-mes;
2023-05-22 04:02:16 +00:00
};
heirloom = callPackage ./heirloom {
bash = bash_2_05;
tinycc = tinycc-mes;
};
heirloom-devtools = callPackage ./heirloom-devtools { tinycc = tinycc-mes; };
linux-headers = callPackage ./linux-headers { bash = bash_2_05; };
2023-05-10 06:24:46 +00:00
ln-boot = callPackage ./ln-boot { };
2023-04-24 01:38:32 +00:00
mes = lib.recurseIntoAttrs (callPackage ./mes { });
mes-libc = callPackage ./mes/libc.nix { };
stage0-posix = callPackage ./stage0-posix { };
inherit (self.stage0-posix) kaem m2libc mescc-tools mescc-tools-extra;
tinycc-bootstrappable = lib.recurseIntoAttrs (callPackage ./tinycc/bootstrappable.nix { });
tinycc-mes = lib.recurseIntoAttrs (callPackage ./tinycc/mes.nix { });
2023-06-15 05:30:10 +00:00
xz = callPackage ./xz {
bash = bash_2_05;
tinycc = tinycc-mes;
inherit (heirloom) sed;
};
inherit (callPackage ./utils.nix { }) derivationWithMeta writeTextFile writeText;
test = kaem.runCommand "minimal-bootstrap-test" {} ''
2023-07-23 04:51:08 +00:00
echo ${bash.tests.get-version}
echo ${bash_2_05.tests.get-version}
echo ${binutils.tests.get-version}
echo ${binutils-mes.tests.get-version}
2023-05-22 04:58:11 +00:00
echo ${bzip2.tests.get-version}
echo ${diffutils.tests.get-version}
2023-05-22 03:19:00 +00:00
echo ${gawk.tests.get-version}
echo ${gcc2.tests.get-version}
echo ${gcc2-mes.tests.get-version}
2023-05-21 23:44:19 +00:00
echo ${gnugrep.tests.get-version}
echo ${gnused.tests.get-version}
echo ${gnused-mes.tests.get-version}
2023-05-22 03:41:51 +00:00
echo ${gnutar.tests.get-version}
2023-05-22 04:02:16 +00:00
echo ${gzip.tests.get-version}
echo ${heirloom.tests.get-version}
echo ${mes.compiler.tests.get-version}
echo ${tinycc-mes.compiler.tests.chain}
2023-06-15 05:30:10 +00:00
echo ${xz.tests.get-version}
mkdir ''${out}
'';
})