将覆盖层应用于haskellPackages

时间:2018-07-13 04:21:39

标签: haskell nix

我已经看到,有了覆盖层,我们可以轻松地自定义nixpkgs。快速谷歌搜索,我得到这样的漂亮结果,取自:

# Creating an overlay
let overlay1 = self: super:
{
   google-chrome = super.google-chrome.override {
   commandLineArgs =
     "--proxy-server='https=127.0.0.1:3128;http=127.0.0.1:3128'";
   };
};

# Actually using it
import <nixpkgs> { overlays = [ overlay1 ]; }

但是我实际上对如何使用叠加层修改现有的haskell软件包一无所知。我想禁用对hasktags的覆盖测试。救命!

1 个答案:

答案 0 :(得分:1)

更多挖掘之后,这对我有用:

self: super: {
  haskellPackages = super.haskellPackages.override {
    overrides = haskellSelf: haskellSuper: {
      hasktags = self.haskell.lib.dontCheck haskellSuper.hasktags;
    };
  };
}

并将其放在~/.config/nixpkgs/overlays.nix~/.config/nixpkgs/overlays/目录中。

上面的示例是您要在hasktags上禁用测试的情况。这个想法适用于所有其他软件包。