use nixpkgs.lix if no LixSrc provided

This commit is contained in:
crop 2024-07-21 20:03:21 +02:00
parent d70318fb94
commit c35345038e
2 changed files with 17 additions and 12 deletions

View file

@ -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; }) ];
}

View file

@ -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