nix计算目录sha值访方法

nixpkgs有一个fetchFromGitHub的方法,里面需要计算sha值,但是但是是但是文档里没有说这个值是怎么算出来的,不同于一般的文件是很容易计算的,这里是一个目录啊,文档上还写着”extracted directory“。很是迷惑。

nix setupHook和一些tips

之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILEcc-wrapper等内建的hook进行了一次理解。问题首先为成两个主要部分。

  1. cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且stdenv/setup.sh内也不存在setup-hook以外的特殊脚本调用。
  2. setup-hook内,以及各种build-support内,没有任何对NIX_CFLAGS_COMPILE进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE传过去的)。

这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。

nixpkgs configre与build相关思考

问题主要在于nixpkgs的mkDerivate都干了些什么,为什么可以自动处理cmake等构建。以及在最近,nix使用placeholder "out"来代替了$out。不知道这里的原因。

最近突然想到nix的包一些原理,有点好奇就去看文档,但nix一套的manual太过于简单了,同时部分内容编写有点混乱,或者说比较难查到想查的东西。比如override和callPackage需要看pill才能理解,而pills里写的内容又非常有限。而setup-hook的选项和和一些内建的setup-hook是分放在不同的两个章节且没有跳转或说明。