Unverified Commit 6ed003c5 authored by Jonas Chevalier's avatar Jonas Chevalier Committed by GitHub
Browse files

appendOverlays: preserve splicing on empty overlay list (#501313)

parents 70974cdc 51452954
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -64,4 +64,22 @@ lib.recurseIntoAttrs {
    assert lib.all (p: p.stdenv.buildPlatform == p.stdenv.hostPlatform) pkgsLocal;
    assert lib.all (p: p.stdenv.buildPlatform != p.stdenv.hostPlatform) pkgsCross;
    pkgs.emptyFile;

  # appendOverlays must preserve splicing so that cross-compilation
  # works in NixOS modules (which go through appendOverlays via nixpkgs.nix).
  appendOverlaysPreservesSplicing =
    let
      cross = nixpkgsFun {
        localSystem = {
          system = "x86_64-linux";
        };
        crossSystem = {
          system = "aarch64-linux";
        };
      };
      appended = cross.appendOverlays [ ];
    in
    assert cross.makeWrapper ? __spliced;
    assert appended.makeWrapper ? __spliced;
    pkgs.emptyFile;
}
+4 −1
Original line number Diff line number Diff line
@@ -272,7 +272,10 @@ let
    # in one go when calling Nixpkgs, for performance and simplicity.
    appendOverlays =
      extraOverlays:
      if extraOverlays == [ ] then self else nixpkgsFun { overlays = args.overlays ++ extraOverlays; };
      if extraOverlays == [ ] then
        self.__splicedPackages
      else
        nixpkgsFun { overlays = args.overlays ++ extraOverlays; };

    # NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB
    #       of allocations. DO NOT USE THIS IN NIXPKGS.