diff --git a/overlay.nix b/overlay.nix index cbc9515..4cf5b88 100644 --- a/overlay.nix +++ b/overlay.nix @@ -60,11 +60,25 @@ let # errors. This is a simple safeguard to put in at least something that might be seen. maybeWarnWrongMajor = x: if !(lib.hasPrefix supportedLixMajor lixPackageToUse.version) then builtins.trace wrongMajorWarning x else x; - overlay = + overlay = lib.genAttrs overridelist_upstream ( - name: if (lib.functionArgs prev.${name}.override ? "nix") then prev.${name}.override { - nix = final.nixVersions.stable_upstream; - } else prev.${name} + name: + if (lib.functionArgs prev.${name}.override ? "nix") then + let + # Get the two common inputs of a derivation/package. + inputs = prev.${name}.buildInputs ++ prev.${name}.nativeBuildInputs; + nixDependency = lib.findFirst + (drv: lib.hasPrefix "nix-2." drv.name) + prev.nixVersions.stable_upstream # default to stable nix if nix is not an input + inputs; + nixMajor = lib.versions.major nixDependency.version; + nixMinor = lib.versions.minor nixDependency.version; + nixAttr = "nix_${nixMajor}_${nixMinor}"; + finalNix = final.nixVersions.${nixAttr}; + in + prev.${name}.override { + nix = finalNix; + } else prev.${name} ) // { lix-overlay-present = 1; # used for things that one wouldn't necessarily want to update, but we