From dab3eb948d9ed9f2ca2e6acd57ec4a57da01cf21 Mon Sep 17 00:00:00 2001 From: Archit Gupta Date: Thu, 13 Apr 2023 19:19:58 -0700 Subject: [PATCH] Make output packages available in all pkgs parameters This enables using packages defined by the flake from the pkgs input of apps, for example. --- default.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/default.nix b/default.nix index ac6c72a..47024d1 100644 --- a/default.nix +++ b/default.nix @@ -111,23 +111,21 @@ let ((map (m: normalizeModule (m src inputs root')) ([ baseModule ] ++ modules)) ++ [ root' ]); + genPackages = pkgs: mapAttrs (_: v: pkgs.callPackage v { }); + pkgsFor = system: import (inputs.nixpkgs or nixpkgs) { inherit system; - overlays = merged.withOverlays; + overlays = merged.withOverlays ++ [ + (final: _: genPackages final merged.packages) + ]; }; systemPkgs = listToAttrs (map (system: nameValuePair system (pkgsFor system)) root'.systems); - genPackages = pkgs: mapAttrs (_: v: pkgs.callPackage v { }); - - genMutualPackages = pkgs: packageSet: - let - overlay = final: _: genPackages final packageSet; - pkgs' = pkgs.extend overlay; - in - genAttrs (attrNames packageSet) (p: pkgs'.${p}); + getPackagesFrom = pkgs: packageSet: + genAttrs (attrNames packageSet) (p: pkgs.${p}); mkCheck = pkgs: name: cmd: pkgs.runCommand "check-${name}" { } '' cp --no-preserve=mode -r ${src} src @@ -175,7 +173,7 @@ let (replaceDefault merged.packages); } // eachSystem (pkgs: rec { packages = filterAttrs (_: supportedSystem pkgs) - (genMutualPackages pkgs merged.packages); + (getPackagesFrom pkgs merged.packages); checks = mapAttrs' (k: nameValuePair ("packages-" + k)) packages; })))