かなり基本的なcabalファイルから
cabal2nix ./. > default.nix
そして、のshell.nix
let
pkgs = import <nixpkgs> {};
haskellPackages = pkgs.haskellPackages_ghc784.override {
extension = self: super: {
thispackage = self.callPackage ./default.nix {};
};
};
in pkgs.myEnvFun {
name = haskellPackages.thispackage.name;
buildInputs = [
(haskellPackages.ghcWithPackages (hs: ([
hs.cabalInstall
] ++ hs.thispackage.propagatedNativeBuildInputs)))
];
}
nix-shell で cabal configure を実行すると、テキストなどのパッケージが見つからないというメッセージが表示されます。
次のように、テキストパッケージを明示的にshell.nixに入れると
let
pkgs = import <nixpkgs> {};
haskellPackages = pkgs.haskellPackages_ghc784.override {
extension = self: super: {
thispackage = self.callPackage ./default.nix {};
};
};
in pkgs.myEnvFun {
name = haskellPackages.thispackage.name;
buildInputs = [
(haskellPackages.ghcWithPackages (hs: ([
hs.cabalInstall
hs.text
] ++ hs.thispackage.propagatedNativeBuildInputs)))
];
}
cabal の構成は問題ありませんが、hs.thispackage.propagatedNativeBuildInputs がこれらのパッケージを提供することを期待しています。
非常に基本的な haskell プロジェクトは、次の場所で見ることができます。
https://github.com/fatlazycat/haskell-nix-helloworld
あなたがこのように働くことができると仮定するのは間違っていますか?
ありがとう