pkg-configとopenssl-devが必要。さらにpkg-configにopensslの情報を渡してやることが必要。 なので以下のようになる (なぜか私の環境では相変わらずnix-shellが追加した環境をprofileに渡せないままなのだ)。
$ nix shell nixpkgs#pkg-config nixpkgs#openssl
$ PKG_CONFIG_PATH=/nix/store/${OPENSSL_DEV}/lib PATH=/nix/store/${PKG_CONFIG}/bin cargo build
cargoSha256
を変更する必要がある場合cargoDeps = PACKAGE.cargoDeps.overrideAttrs (lib.const {
name = "${pname}-vendor.tar.gz";
inherit src;
outputHash = "sha256-AyRsxT+4TdRdtKrodK+7N+Y/UkeA67OepnMLIpK1WR8=";
});
cargoSha256
は評価されてしまってcargoDeps.outputHash
なる内部データになってしまっているそうだ。
アホのような原因だった。.bashrc, .zshrcの中でPATHをリセットしていたからだった。 SHELLを/bin/shに切り替えるとちゃんと動作することから判明しました。