Fix overlay.* flake outputs not conforming to spec (#21)

- overlay function argument names should be `final` and `prev`
 - `overlay.*` should be overlays -- functions taking `final: prev:`

The NixOS module was amended to preserve compatibility.
This commit is contained in:
Vika 2023-01-24 18:35:19 +03:00 committed by GitHub
parent e36a1a93aa
commit 6216734855
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13,26 +13,26 @@
let let
compiler = "ghc92"; compiler = "ghc92";
overlay = pkgsNew: pkgsOld: { overlay = final: prev: {
cabal2nix-unwrapped = cabal2nix-unwrapped =
pkgsNew.haskell.lib.justStaticExecutables final.haskell.lib.justStaticExecutables
pkgsNew.haskell.packages."${compiler}".cabal2nix; final.haskell.packages."${compiler}".cabal2nix;
haskell = pkgsOld.haskell // { haskell = prev.haskell // {
packages = pkgsOld.haskell.packages // { packages = prev.haskell.packages // {
"${compiler}" = pkgsOld.haskell.packages."${compiler}".override (old: { "${compiler}" = prev.haskell.packages."${compiler}".override (old: {
overrides = overrides =
pkgsNew.lib.fold pkgsNew.lib.composeExtensions (old.overrides or (_: _: { })) [ final.lib.fold final.lib.composeExtensions (old.overrides or (_: _: { })) [
(pkgsNew.haskell.lib.packageSourceOverrides { (final.haskell.lib.packageSourceOverrides {
nix-serve-ng = ./.; nix-serve-ng = ./.;
}) })
(haskellPackagesNew: haskellPackagesOld: { (haskellPackagesNew: haskellPackagesOld: {
nix-serve-ng = nix-serve-ng =
pkgsNew.haskell.lib.overrideCabal final.haskell.lib.overrideCabal
haskellPackagesOld.nix-serve-ng haskellPackagesOld.nix-serve-ng
(old: { (old: {
executableSystemDepends = (old.executableSystemDepends or []) ++ [ executableSystemDepends = (old.executableSystemDepends or []) ++ [
pkgsNew.boost.dev final.boost.dev
]; ];
}); });
}) })
@ -42,8 +42,8 @@
}; };
nix-serve-ng = nix-serve-ng =
pkgsNew.haskell.lib.justStaticExecutables final.haskell.lib.justStaticExecutables
pkgsNew.haskell.packages."${compiler}".nix-serve-ng; final.haskell.packages."${compiler}".nix-serve-ng;
}; };
in in
@ -84,18 +84,13 @@
# The default overlay only adds the exports for # The default overlay only adds the exports for
# `pkgs.haskell.packages."${compiler}".nix-serve-ng` and # `pkgs.haskell.packages."${compiler}".nix-serve-ng` and
# `pkgs.nix-serve-ng` # `pkgs.nix-serve-ng`
default = [ overlay ]; default = overlay;
# This overlay additionally overrides `pkgs.nix-serve` to refer to # This overlay additionally overrides `pkgs.nix-serve` to refer to
# `pkgs.nix-serve-ng` # `pkgs.nix-serve-ng`
override = override = final: prev: {
let nix-serve = final.nix-serve-ng;
replace = pkgsNew: pkgsOld: { };
nix-serve = pkgsNew.nix-serve-ng;
};
in
[ overlay replace ];
}; };
# The NixOS module is a thin wrapper around the overlay to replace # The NixOS module is a thin wrapper around the overlay to replace
@ -103,7 +98,7 @@
# #
# You can continue to use the old `services.nix-serve` NixOS options. # You can continue to use the old `services.nix-serve` NixOS options.
nixosModules.default = { nixosModules.default = {
nixpkgs.overlays = overlays.override; nixpkgs.overlays = [ overlays.default overlays.override ];
}; };
}; };
} }