Nix: Haskell パッケージのインストール時に単体テストをスキップする

Nix: Haskell パッケージのインストール時に単体テストをスキップする

私はNixを使用して制限されたリソースを使用する共有ホスティングの私の家の下にパッケージをインストールしています(したがってバイナリパッケージはありません)。 git-annexをインストールしようとしています。依存関係の1つであるhaskell-lensをビルドすると、単体テストは大量のメモリを消費し、そのテストが終了し、インストールが失敗します。

パッケージをインストールするために単体テストをスキップする方法はありますか? Cabal Builderを見てみると、falseに設定してテストを無効にhaskell-packages.nixできるようです。enableCheckPhase以下を試しましたが、~/.nixpkgs/config.nixテストはまだ実行中です。

{
    packageOverrides = pkgs: with pkgs; {
        # ...other customizations...
        haskellPackages = haskellPackages.override {
            extension = self : super : {
                self.lens = self.disableTest self.lens;
            };
        };
    };
}

ベストアンサー1

nixpkgs承認された回答が公開されてから状況が再構成され、テストを無効にする新機能があります。これでpkgs.haskell.lib.dontCheck、テストを無効にする機能でHaskellパッケージをラップできます。以下は、shared-memoryOS Xでビルドするときに依存関係テストを無効にする必要があるHaskellプロジェクトの1つのNix式の例です。

{ pkgs ? import <nixpkgs> {}, compiler ? "ghc7103" }:
pkgs.haskell.packages.${compiler}.callPackage ./my-project.nix
    {   shared-memory =
            let shared-memory = pkgs.haskell.packages.${compiler}.shared-memory;
            in  if pkgs.stdenv.isDarwin
                then pkgs.haskell.lib.dontCheck shared-memory
                else shared-memory;
    }

おすすめ記事