summaryrefslogtreecommitdiff
path: root/Biz/Bild/Nixpkgs.nix
blob: d29519cba4aefab1ea2fb6105c49d746f6a4b436 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
let
  sources = import ./Sources.nix { sourcesFile = ./Sources.json; };
in
import sources.nixpkgs {
  system = __currentSystem;
  overlays = [
    (_: _: { inherit sources; })
    (_: pkgs: {
      overridePinnedDeps = builder:
        pkgs.lib.genAttrs (builtins.attrNames pkgs.sources) builder;
    })
    (_: pkgs: {
      # Modifies a derivation with our source and version, keeping old build
      # rules. This will fail if build steps have changed, or if no build
      # rules are available upstream.
      overrideSource = depName:
        pkgs.${depName}.overrideAttrs (old: old // rec {
          version = pkgs.sources.${depName}.version or pkgs.sources.${depName}.rev;
          src = pkgs.sources.${depName};
        });
    })
    (_: pkgs:
      # override pinned deps with our sources
      pkgs.overridePinnedDeps pkgs.overrideSource)
    (import ./Deps.nix)
    (_: pkgs: { niv = import pkgs.sources.niv {}; })
  ];
  config = {
    allowBroken = true;
    allowUnfree = true;
  };
}