Compare commits

...

3 commits

Author SHA1 Message Date
Fabián Heredia Montiel 2669bc78a6 overlay: make finalNix depend on the nix version being used by a package
This should address both of the following (were 35 is more general and
36 a specific case)

- lix-project/nixos-module#35
- lix-project/nixos-module#36
2024-09-26 16:20:15 -06:00
jade b0e6f35950 overlay: clean up 2.18 stuff
Since Nix 2.24 is now the default in nixpkgs, we should remove the stuff
that assumes it's 2.18. Nothing breaks with this change, unless someone
is specifically depending on nixVersions.nix_2_18 being Lix.
2024-09-17 20:47:29 -07:00
jade daeb420858 Merge pull request 'fix: check package arguments before applying Nix 2.18 override' (#34) from devusb/nixos-module:remove-devenv-overlay into main
Reviewed-on: lix-project/nixos-module#34
2024-09-18 03:39:56 +00:00
2 changed files with 34 additions and 21 deletions

View file

@ -5,11 +5,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
@ -36,11 +36,11 @@
"lix": {
"flake": false,
"locked": {
"lastModified": 1723511168,
"narHash": "sha256-XDcqLVPcsMhORerIPuQ1XNALtDvG6QRA2dKyNrccXyg=",
"rev": "f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44",
"lastModified": 1726590994,
"narHash": "sha256-CrvIEzBzvvfE7jGIXBv6hSYDxv4eYeHWAwVho5WrF48=",
"rev": "8ab5743904a06c78153281bf61b3aa8aa451a489",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44.tar.gz?rev=f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44"
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/8ab5743904a06c78153281bf61b3aa8aa451a489.tar.gz?rev=8ab5743904a06c78153281bf61b3aa8aa451a489"
},
"original": {
"type": "tarball",
@ -49,11 +49,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1723175592,
"narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=",
"lastModified": 1726463316,
"narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5e0ca22929f3342b19569b21b2f3462f053e497b",
"rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172",
"type": "github"
},
"original": {

View file

@ -11,7 +11,7 @@ let
});
# These packages depend on Nix features that Lix does not support
overridelist_2_18 = [
overridelist_upstream = [
"attic-client"
"devenv"
"nix-du"
@ -61,9 +61,23 @@ let
maybeWarnWrongMajor = x: if !(lib.hasPrefix supportedLixMajor lixPackageToUse.version) then builtins.trace wrongMajorWarning x else x;
overlay =
lib.genAttrs overridelist_2_18 (
name: if (lib.functionArgs prev.${name}.override ? "nix") then prev.${name}.override {
nix = final.nixVersions.nix_2_18_upstream;
lib.genAttrs overridelist_upstream (
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: drv.pname == "nix")
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;
@ -74,15 +88,14 @@ let
lix = maybeWarnWrongMajor (maybeWarnDuplicate lixPackageToUse);
nixVersions = prev.nixVersions // rec {
nix_2_18 = final.lix;
stable = nix_2_18;
nix_2_18_upstream = prev.nixVersions.nix_2_18;
nixVersions = prev.nixVersions // {
stable = final.lix;
stable_upstream = prev.nixVersions.stable;
};
nix-eval-jobs = (prev.nix-eval-jobs.override {
# lix
nix = final.nixVersions.nix_2_18;
nix = final.lix;
}).overrideAttrs (old:
let src = final.lix-sources.nix-eval-jobs;
in {