summaryrefslogtreecommitdiff
path: root/Biz/Bild/Nixpkgs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Bild/Nixpkgs.nix')
-rw-r--r--Biz/Bild/Nixpkgs.nix43
1 files changed, 30 insertions, 13 deletions
diff --git a/Biz/Bild/Nixpkgs.nix b/Biz/Bild/Nixpkgs.nix
index 88cf6ca..ffafe3f 100644
--- a/Biz/Bild/Nixpkgs.nix
+++ b/Biz/Bild/Nixpkgs.nix
@@ -1,16 +1,33 @@
let
sources = import ./Sources.nix;
- nixpkgs = import sources.nixpkgs {
- system = __currentSystem;
- overlays = [
- (_: _: { inherit sources; })
- (import ./Overlay.nix)
- (_: pkgs: pkgs.overridePinnedDeps pkgs.overrideSource)
- (_: _: { niv = import sources.niv {}; })
- (_: pkgs: { wemux = pkgs.callPackage ./Wemux.nix {}; })
- ];
- config = {
- allowBroken = true;
- };
+in
+import sources.nixpkgs {
+ system = __currentSystem;
+ overlays = [
+ (_: _: { inherit sources; })
+ (_: pkgs: rec {
+ pinnedDeps = builtins.attrNames
+ (builtins.removeAttrs pkgs.sources ["__functor"]);
+
+ overridePinnedDeps = builder: pkgs.lib.genAttrs pinnedDeps builder;
+
+ # 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:
+ if pkgs ? depName then
+ pkgs.${depName}.overrideAttrs (old: old // rec {
+ name = "${depName}-${version}";
+ version = pkgs.sources.${depName}.version or pkgs.sources.${depName}.rev;
+ src = pkgs.sources.${depName};
+ })
+ else null;
+ })
+ (_: pkgs: pkgs.overridePinnedDeps pkgs.overrideSource)
+ (import ./Deps.nix)
+ (_: pkgs: { niv = import pkgs.sources.niv {}; })
+ ];
+ config = {
+ allowBroken = true;
};
-in nixpkgs
+}