polkadot: fix commit hash fetch for version string
This commit is contained in:
parent
6321c75b5f
commit
cf4e6208c1
1 changed files with 29 additions and 2 deletions
|
@ -4,6 +4,7 @@
|
|||
, llvmPackages
|
||||
, protobuf
|
||||
, rustPlatform
|
||||
, writeShellScriptBin
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "polkadot";
|
||||
|
@ -13,12 +14,38 @@ rustPlatform.buildRustPackage rec {
|
|||
owner = "paritytech";
|
||||
repo = "polkadot";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-TgpQ+nRKkbyQcCwecnhgF70FI+rlDuTy7XHUNhvYy64=";
|
||||
sha256 = "sha256-NXuYUmo80rrBZCcuISKon48SKyyJrkzCEhggxaJNfBM=";
|
||||
|
||||
# see the comment below on fakeGit for how this is used
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
( cd $out; git rev-parse --short HEAD > .git_commit )
|
||||
rm -rf $out/.git
|
||||
'';
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-PIORMTzQbMdlrKwuF4MiGrLlg2nQpgLRsaHHeiCbqrg=";
|
||||
|
||||
nativeBuildInputs = [ clang ];
|
||||
nativeBuildInputs =
|
||||
let
|
||||
# the build process of polkadot requires a .git folder in order to determine
|
||||
# the git commit hash that is being built and add it to the version string.
|
||||
# since having a .git folder introduces reproducibility issues to the nix
|
||||
# build, we check the git commit hash after fetching the source and save it
|
||||
# into a .git_commit file, and then delete the .git folder. then we create a
|
||||
# fake git command that will just return the contents of this file, which will
|
||||
# be used when the polkadot build calls `git rev-parse` to fetch the commit
|
||||
# hash.
|
||||
fakeGit = writeShellScriptBin "git" ''
|
||||
if [[ $@ = "rev-parse --short HEAD" ]]; then
|
||||
cat /build/source/.git_commit
|
||||
else
|
||||
>&2 echo "Unknown command: $@"
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
in
|
||||
[ clang fakeGit ];
|
||||
|
||||
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
|
||||
PROTOC = "${protobuf}/bin/protoc";
|
||||
|
|
Loading…
Reference in a new issue