From c35345038e9f262b64fd52a67c398b917964c348 Mon Sep 17 00:00:00 2001 From: crop Date: Sun, 21 Jul 2024 20:03:21 +0200 Subject: [PATCH] use nixpkgs.lix if no LixSrc provided --- module.nix | 4 ++-- overlay.nix | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/module.nix b/module.nix index 5e7f1bf..8aec7e0 100644 --- a/module.nix +++ b/module.nix @@ -1,5 +1,5 @@ -{ lix, versionSuffix ? "" }: +{ lixSrc ? null, versionSuffix ? "" }: { pkgs, config, ... }: { - nixpkgs.overlays = [ (import ./overlay.nix { inherit lix versionSuffix; }) ]; + nixpkgs.overlays = [ (import ./overlay.nix { inherit lixSrc versionSuffix; }) ]; } diff --git a/overlay.nix b/overlay.nix index ec76bb2..3c2cd46 100644 --- a/overlay.nix +++ b/overlay.nix @@ -1,16 +1,20 @@ -{ lix, versionSuffix ? "" }: +{ lixSrc ? null, versionSuffix ? "" }: final: prev: let # This is kind of scary to not override the nix version to pretend to be # 2.18 since nixpkgs can introduce new breakage in its Nix unstable CLI # usage. # https://github.com/nixos/nixpkgs/blob/6afb255d976f85f3359e4929abd6f5149c323a02/nixos/modules/config/nix.nix#L121 - lixPkg = final.callPackage (lix + "/package.nix") ({ - versionSuffix = "-${versionSuffix}"; - # FIXME: do this more sensibly for future releases - # https://git.lix.systems/lix-project/lix/issues/406 - officialRelease = false; - }); + lixPkg = + if lixSrc == null + then prev.pkgs.lix + else + final.callPackage (lixSrc + "/package.nix") ({ + versionSuffix = "-${versionSuffix}"; + # FIXME: do this more sensibly for future releases + # https://git.lix.systems/lix-project/lix/issues/406 + officialRelease = false; + }); # These packages depend on Nix features that Lix does not support overridelist_2_18 = [ @@ -26,7 +30,8 @@ let override_2_18 = prev.lib.genAttrs overridelist_2_18 ( name: prev.${name}.override { nix = final.nixVersions.nix_2_18_upstream; - }); + } + ); warning = '' warning: You have the lix overlay included into a nixpkgs import twice, @@ -81,7 +86,7 @@ let pegtl = prev.callPackage ./pegtl.nix { }; }; in - # Make the overlay idempotent, since flakes passing nixos modules around by +# Make the overlay idempotent, since flakes passing nixos modules around by # value and many other things make it way too easy to include the overlay # twice - if (prev ? lix-overlay-present) then { lix-overlay-present = 2; } else overlay +if (prev ? lix-overlay-present) then { lix-overlay-present = 2; } else overlay