{ final, prev, ... }: let spm = let # defaultPackages = (import ./stackage.nix {}); # haskellPackages = defaultPackages // argumentPackages; # haskellPackages = argumentPackages; haskellPackages = final.haskell.packages.ghc924.override { overrides = self: super: { warp-systemd = final.haskell.lib.doJailbreak (super.warp-systemd.overrideAttrs (oldAttrs: { meta = oldAttrs.meta // { broken = false; }; })); # servant-server = super.servant-server.overrideAttrs (oldAttrs: { # patches = []; # }); # hpack = super.hpack.overrideAttrs (oldAttrs: rec { # version = "0.35.0"; # src = prev.fetchFromGitHub { # owner = "sol"; # repo = "hpack"; # rev = "0.35.0"; # hash = "sha256-DMxCHwz9x2e4kSOIk1/qeW3aDFHw88LNW+4vXxDV9EI="; # }; # }); }; }; spm-frontend = final.callPackage ./frontend { baseHref = "/ui/"; }; in final.haskell.lib.overrideCabal (haskellPackages.callPackage ./spm.nix {}) (oldAttrs: { src = final.lib.cleanSourceWith rec { filter = let isFiltered = src ? _isLibCleanSourceWith; origSrc = if isFiltered then src.origSrc else src; relPath = path: final.lib.removePrefix (toString origSrc + "/") (toString path); in path: _type: builtins.match "^frontend(/.*)?$" (relPath path) == null; src = ./.; }; postPatch = '' ${oldAttrs.postPatch or ""} ln -sfTv ${spm-frontend} frontend ''; }); in { inherit spm; }