diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix index 65b052c44569c07..82ee4d12386e95c 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix @@ -7,6 +7,7 @@ rec { version = "unstable-2023-05-02"; rev = "3189b5f325b7ef8b88e3edec7c1cde4fce73c76c"; outputHashAlgo = "sha256"; + outputHash = "sha256-FpMp7z+B3cR3LkQ+PooH/b1/NlxH8NHVJNWifaPWt4U="; # This 256 byte seed is the only pre-compiled binary in the bootstrap chain. hex0-seed = import { @@ -29,7 +30,7 @@ rec { Run the following command: ``` - nix hash file $(nix build --print-out-paths -f '' make-minimal-bootstrap-sources) + nix hash path $(nix build --print-out-paths -f '' make-minimal-bootstrap-sources) ``` # Why do we need this `.nar` archive? @@ -71,11 +72,10 @@ rec { requirements above apply to `minimal-bootstrap-sources`. */ minimal-bootstrap-sources = derivation { - name = "${name}.nar.xz"; + inherit name; system = builtins.currentSystem; - outputHashMode = "flat"; - inherit outputHashAlgo; - outputHash = "sha256-ig988BiRTz92hhZZgKQW1tVPoV4aQ2D69Cq3wHvVgHg="; + outputHashMode = "recursive"; + inherit outputHashAlgo outputHash; # This builder always fails, but fortunately Nix will print the # "builder", which is really the error message that we want the @@ -85,22 +85,21 @@ rec { # # Neither your store nor your substituters seems to have: # - # ${name}.nar.xz + # ${builtins.placeholder "out"} # - # Please obtain or create this file, give it exactly the name - # shown above, and then run the following command: - # - # nix-store --add-fixed ${outputHashAlgo} ${name}.nar.xz - # - # You can create this file from an already-bootstrapped nixpkgs + # You can create this path from an already-bootstrapped nixpkgs # using the following command: # # nix-build '' -A make-minimal-bootstrap-sources # # Or, if you prefer, you can create this file using only `git`, # `nix`, and `xz`. For the commands needed in order to do this, - # see `make-bootstrap-sources.nix`. + # see `make-bootstrap-sources.nix`. Once you have the manual + # result, do: + # + # nix-store --add-fixed --recursive ${outputHashAlgo} ./${name} # + # to add it to your store. ''; }; } diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix index 8951cc9ddbc4a3d..2675d055aec633d 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix @@ -8,44 +8,36 @@ # # To build: # -# nix-build '' -o sources.nar.xz -A make-minimal-bootstrap-sources +# nix-build '' -A make-minimal-bootstrap-sources # { lib , fetchFromGitHub -, runCommand -, nix -, xz }: -let - inherit (import ./bootstrap-sources.nix { }) name rev; - - src = fetchFromGitHub { - owner = "oriansj"; - repo = "stage0-posix"; - inherit rev; - sha256 = "sha256-FpMp7z+B3cR3LkQ+PooH/b1/NlxH8NHVJNWifaPWt4U="; - fetchSubmodules = true; - postFetch = '' - # Seed binaries will be fetched separately - echo "Removing seed binaries" - rm -rf $out/bootstrap-seeds/* - - # Remove vendored/duplicate M2libc's - echo "Removing duplicate M2libc" - rm -rf \ - $out/M2-Mesoplanet/M2libc \ - $out/M2-Planet/M2libc \ - $out/mescc-tools/M2libc \ - $out/mescc-tools-extra/M2libc - ''; - }; +let + expected = import ./bootstrap-sources.nix { }; in -runCommand "${name}.nar.xz" { - nativeBuildInputs = [ nix xz ]; - passthru = { inherit src; }; +fetchFromGitHub { + inherit (expected) name rev; + owner = "oriansj"; + repo = "stage0-posix"; + sha256 = expected.outputHash; + fetchSubmodules = true; + postFetch = '' + # Seed binaries will be fetched separately + echo "Removing seed binaries" + rm -rf $out/bootstrap-seeds/* + + # Remove vendored/duplicate M2libc's + echo "Removing duplicate M2libc" + rm -rf \ + $out/M2-Mesoplanet/M2libc \ + $out/M2-Planet/M2libc \ + $out/mescc-tools/M2libc \ + $out/mescc-tools-extra/M2libc + ''; meta = with lib; { description = "Packaged sources for the first bootstrapping stage"; @@ -54,6 +46,4 @@ runCommand "${name}.nar.xz" { maintainers = teams.minimal-bootstrap.members; platforms = platforms.all; }; -} '' - nix-store --dump ${src} | xz -c > $out -'' +}