diff options
Diffstat (limited to 'pkgs/applications/blockchains/polkadot/default.nix')
-rw-r--r-- | pkgs/applications/blockchains/polkadot/default.nix | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix index 942d1755acc..f391ccac790 100644 --- a/pkgs/applications/blockchains/polkadot/default.nix +++ b/pkgs/applications/blockchains/polkadot/default.nix @@ -2,20 +2,22 @@ , lib , protobuf , rocksdb +, rust-jemalloc-sys-unprefixed , rustPlatform +, rustc-wasm32 , stdenv , Security , SystemConfiguration }: rustPlatform.buildRustPackage rec { pname = "polkadot"; - version = "1.0.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "paritytech"; - repo = "polkadot"; - rev = "v${version}"; - hash = "sha256-izm0rpLzwlhpp3dciQ1zj1boWxhgGnNMG5ceZoZQGEE="; + repo = "polkadot-sdk"; + rev = "polkadot-v${version}"; + hash = "sha256-7hCQdJHzuPQTNZFDGEZG/Q6G/Gh/gJANV5uiL/d6Pas="; # 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. @@ -31,53 +33,49 @@ rustPlatform.buildRustPackage rec { ''; }; + preBuild = '' + export SUBSTRATE_CLI_GIT_COMMIT_HASH=$(< .git_commit) + rm .git_commit + ''; + cargoLock = { lockFile = ./Cargo.lock; outputHashes = { - "binary-merkle-tree-4.0.0-dev" = "sha256-J09SHQVOLGStMGONdreI5QZlk+uNNKzWRZpGiNJ+lrk="; - "sub-tokens-0.1.0" = "sha256-GvhgZhOIX39zF+TbQWtTCgahDec4lQjH+NqamLFLUxM="; + "ark-secret-scalar-0.0.2" = "sha256-GROzlo+1QQ8wd090/esQRmaV8KWjNEfUlFlldnME28A="; + "common-0.1.0" = "sha256-ru++KG2ZZqa/wDGnKF/VfWnazHRSpOAD0WYb7rHlpCU="; + "fflonk-0.1.0" = "sha256-MNvlePHQdY8DiOq6w7Hc1pgn7G58GDTeghCKHJdUy7E="; }; }; - # NOTE: the build process currently tries to read some files to generate - # documentation from hardcoded paths that aren't compatible with the cargo - # vendoring strategy, so we need to manually put them in their expected place. - # this should be fixed with the next polkadot release that includes - # https://github.com/paritytech/substrate/pull/14570. - postPatch = '' - FAST_UNSTAKE_DIR=$PWD/../cargo-vendor-dir/pallet-fast-unstake-4.0.0-dev - FAST_UNSTAKE_DOCIFY_DIR=$FAST_UNSTAKE_DIR/frame/fast-unstake + buildType = "production"; - mkdir -p $FAST_UNSTAKE_DOCIFY_DIR - cp -r $FAST_UNSTAKE_DIR/src $FAST_UNSTAKE_DOCIFY_DIR - ''; + cargoBuildFlags = [ "-p" "polkadot" ]; - buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ]; + # NOTE: tests currently fail to compile due to an issue with cargo-auditable + # and resolution of features flags, potentially related to this: + # https://github.com/rust-secure-code/cargo-auditable/issues/66 + doCheck = false; - nativeBuildInputs = [ rustPlatform.bindgenHook ]; + nativeBuildInputs = [ + rustPlatform.bindgenHook + rustc-wasm32 + rustc-wasm32.llvmPackages.lld + ]; - preBuild = '' - export SUBSTRATE_CLI_GIT_COMMIT_HASH=$(cat .git_commit) - rm .git_commit - ''; + # NOTE: jemalloc is used by default on Linux with unprefixed enabled + buildInputs = lib.optionals stdenv.isLinux [ rust-jemalloc-sys-unprefixed ] ++ + lib.optionals stdenv.isDarwin [ Security SystemConfiguration ]; + # NOTE: we need to force lld otherwise rust-lld is not found for wasm32 target + CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "lld"; PROTOC = "${protobuf}/bin/protoc"; ROCKSDB_LIB_DIR = "${rocksdb}/lib"; - # NOTE: We don't build the WASM runtimes since this would require a more - # complicated rust environment setup and this is only needed for developer - # environments. The resulting binary is useful for end-users of live networks - # since those just use the WASM blob from the network chainspec. - SKIP_WASM_BUILD = 1; - - # We can't run the test suite since we didn't compile the WASM runtimes. - doCheck = false; - meta = with lib; { description = "Polkadot Node Implementation"; homepage = "https://polkadot.network"; license = licenses.gpl3Only; - maintainers = with maintainers; [ akru andresilva asymmetric FlorianFranzen RaghavSood ]; + maintainers = with maintainers; [ akru andresilva FlorianFranzen RaghavSood ]; platforms = platforms.unix; }; } |