首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nix从GitHub源.nix文件构建haskell依赖项?

如何使用nix从GitHub源.nix文件构建haskell依赖项?
EN

Stack Overflow用户
提问于 2019-02-21 23:38:15
回答 1查看 239关注 0票数 2

好了,我的项目有一个.nix文件,如下所示:

代码语言:javascript
复制
{ mkDerivation, base, blaze-html, clay, hakyll, hspec, stdenv }:
mkDerivation {
  pname = "open-editions";
  version = "0.1.0.0";
  src = ./.;
  isLibrary = false;
  isExecutable = true;
  executableHaskellDepends = [ base blaze-html clay hakyll ];
  testHaskellDepends = [ hspec ];
  license = "unknown";
  hydraPlatforms = stdenv.lib.platforms.none;
}

(这只是一个使用hakyll的web项目。)问题是,clay在nixpkgs中被破坏了。但我假设clay在GitHub上的主分支上工作。那么,我如何用能够下载并调用GitHub包的东西替换这个haskell依赖clay呢?GitHub包中有一堆.nix文件,所以我猜它会相对简单,但我真的不知道从哪里开始。

EN

回答 1

Stack Overflow用户

发布于 2019-02-22 23:53:11

您可以扩展您的haskell包集,类似于this example

可以使用cabal2nix创建clay的nix文件

代码语言:javascript
复制
cabal2nix git://github.com/sebastiaanvisser/clay.git > clay.nix

假设您的.nix文件名为open-editions.nix,您的default.nix可能看起来有点像:

代码语言:javascript
复制
let
  pkgs = import <nixpkgs> {}; # or similar, I like to pin it with niv

  hs = pkgs.haskellPackages.extend(self: super: { # (1) extend the package set
    open-editions = self.callPackage ./open-editions.nix {};
    clay = self.callPackage ./clay.nix {}; # (2) update clay
  });
in {
  inherit (hs) open-editions; # (3) make nix-build pick up my-project;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54810851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档