Commit 14f66d60 authored by regnat's avatar regnat
Browse files

Make the bootsrap respect the contentAddressedByDefault setting

Patch every `derivation` call in the bootsrap process to add it a
conditional `__contentAddressed` parameter.

That way, passing `contentAddressedByDefault` means that the entire
build closure of a system can be content addressed
parent 559c5792
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ in rec {
    stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
  '';

  bootstrapTools = derivation {
  bootstrapTools = derivation ({
    inherit system;

    name    = "bootstrap-tools";
@@ -54,7 +54,11 @@ in rec {
    inherit (bootstrapFiles) mkdir bzip2 cpio tarball;

    __impureHostDeps = commonImpureHostDeps;
  };
  } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
    __contentAddressed = true;
    outputHashAlgo = "sha256";
    outputHashMode = "recursive";
  });

  stageFun = step: last: {shell             ? "${bootstrapTools}/bin/bash",
                          overrides         ? (self: super: {}),
+6 −2
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ in
  ({}: {
    __raw = true;

    bootstrapTools = derivation {
    bootstrapTools = derivation ({
      inherit system;
      inherit make bash coreutils findutils
        diffutils grep patch gawk cpio sed
@@ -182,7 +182,11 @@ in
      buildInputs = [ make ];
      mkdir = "/bin/mkdir";
      ln = "/bin/ln";
    };
    } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
      __contentAddressed = true;
      outputHashAlgo = "sha256";
      outputHashMode = "recursive";
    });
  })

  ({ bootstrapTools, ... }: rec {
+5 −0
Original line number Diff line number Diff line
@@ -84,6 +84,11 @@ let
      allowedRequisites = allowedRequisites
        ++ defaultNativeBuildInputs ++ defaultBuildInputs;
    }
    // lib.optionalAttrs (config.contentAddressedByDefault or false) {
      __contentAddressed = true;
      outputHashAlgo = "sha256";
      outputHashMode = "recursive";
    }
    // {
      inherit name;

+3 −3
Original line number Diff line number Diff line
{ system, bootstrapFiles }:
{ system, bootstrapFiles, extraAttrs }:

derivation {
derivation ({
  name = "bootstrap-tools";

  builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
  langC = true;
  langCC = true;
  isGNU = true;
}
} // extraAttrs)
+3 −3
Original line number Diff line number Diff line
{ system, bootstrapFiles }:
{ system, bootstrapFiles, extraAttrs }:

derivation {
derivation ({
  name = "bootstrap-tools";

  builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
  langC = true;
  langCC = true;
  isGNU = true;
}
} // extraAttrs)
Loading