Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
6.7 kB · 254 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255{ 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; };
bash = callPackage ./bash { bootBash = bash_2_05; tinycc = tinycc-musl; coreutils = coreutils-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
binutils = callPackage ./binutils { tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
bzip2 = callPackage ./bzip2 { tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
coreutils = callPackage ./coreutils { tinycc = tinycc-mes; }; coreutils-musl = callPackage ./coreutils/musl.nix { bash = bash_2_05; tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
diffutils = callPackage ./diffutils { bash = bash_2_05; tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
findutils = callPackage ./findutils { tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
gawk-mes = callPackage ./gawk/mes.nix { bash = bash_2_05; tinycc = tinycc-mes; gnused = gnused-mes; };
gawk = callPackage ./gawk { bash = bash_2_05; tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; bootGawk = gawk-mes; };
gcc46 = callPackage ./gcc/4.6.nix { tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; # FIXME: not sure why new gawk doesn't work gawk = gawk-mes; }; gcc46-cxx = callPackage ./gcc/4.6.cxx.nix { gcc = gcc46; gnumake = gnumake-musl; gnutar = gnutar-musl; # FIXME: not sure why new gawk doesn't work gawk = gawk-mes; };
gcc8 = callPackage ./gcc/8.nix { gcc = gcc46-cxx; gnumake = gnumake-musl; gnutar = gnutar-latest; # FIXME: not sure why new gawk doesn't work gawk = gawk-mes; };
gcc-latest = callPackage ./gcc/latest.nix { gcc = gcc8; gnumake = gnumake-musl; gnutar = gnutar-latest; # FIXME: not sure why new gawk doesn't work gawk = gawk-mes; };
gnugrep = callPackage ./gnugrep { bash = bash_2_05; tinycc = tinycc-mes; };
gnumake = callPackage ./gnumake { tinycc = tinycc-mes; };
gnumake-musl = callPackage ./gnumake/musl.nix { bash = bash_2_05; tinycc = tinycc-musl; gawk = gawk-mes; gnumakeBoot = gnumake; };
gnupatch = callPackage ./gnupatch { tinycc = tinycc-mes; };
gnused = callPackage ./gnused { bash = bash_2_05; tinycc = tinycc-musl; gnused = gnused-mes; }; gnused-mes = callPackage ./gnused/mes.nix { bash = bash_2_05; tinycc = tinycc-mes; };
gnutar = callPackage ./gnutar/mes.nix { bash = bash_2_05; tinycc = tinycc-mes; gnused = gnused-mes; };
gnutar-musl = callPackage ./gnutar/musl.nix { bash = bash_2_05; tinycc = tinycc-musl; gnused = gnused-mes; };
# FIXME: better package naming scheme gnutar-latest = callPackage ./gnutar/latest.nix { gcc = gcc46; gnumake = gnumake-musl; gnutarBoot = gnutar-musl; };
gzip = callPackage ./gzip { bash = bash_2_05; tinycc = tinycc-mes; gnused = gnused-mes; };
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; };
ln-boot = callPackage ./ln-boot { };
mes = callPackage ./mes { }; mes-libc = callPackage ./mes/libc.nix { };
musl11 = callPackage ./musl/1.1.nix { bash = bash_2_05; tinycc = tinycc-mes; gnused = gnused-mes; };
musl = callPackage ./musl { gcc = gcc46; gnumake = gnumake-musl; };
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 { }); tinycc-musl = lib.recurseIntoAttrs ( callPackage ./tinycc/musl.nix { bash = bash_2_05; musl = musl11; } );
xz = callPackage ./xz { bash = bash_2_05; tinycc = tinycc-musl; gnumake = gnumake-musl; gnutar = gnutar-musl; };
inherit (callPackage ./utils.nix { }) derivationWithMeta writeTextFile writeText;
test = kaem.runCommand "minimal-bootstrap-test" { } '' echo ${bash.tests.get-version} echo ${bash_2_05.tests.get-version} echo ${binutils.tests.get-version} echo ${bzip2.tests.get-version} echo ${coreutils-musl.tests.get-version} echo ${diffutils.tests.get-version} echo ${findutils.tests.get-version} echo ${gawk-mes.tests.get-version} echo ${gawk.tests.get-version} echo ${gcc46.tests.get-version} echo ${gcc46-cxx.tests.hello-world} echo ${gcc8.tests.hello-world} echo ${gcc-latest.tests.hello-world} echo ${gnugrep.tests.get-version} echo ${gnused.tests.get-version} echo ${gnused-mes.tests.get-version} echo ${gnutar.tests.get-version} echo ${gnutar-musl.tests.get-version} echo ${gnutar-latest.tests.get-version} echo ${gzip.tests.get-version} echo ${heirloom.tests.get-version} echo ${mes.compiler.tests.get-version} echo ${musl.tests.hello-world} echo ${tinycc-mes.compiler.tests.chain} echo ${tinycc-musl.compiler.tests.hello-world} echo ${xz.tests.get-version} mkdir ''${out} ''; } )