mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-04 15:07:23 +00:00
402b64caf5
This PR improves compatibility with RISC-V and PolkaVM, allowing more runtimes to successfully compile. In particular, it makes the following changes: - The `sp-mmr-primitives` and `sp-consensus-beefy` crates unconditionally required an `std`-only dependency; now they only require those dependencies when the `std` feature is actually enabled. (Our RISC-V target is, unlike WASM, a true `no_std` target where you can't accidentally use stuff from `std` anymore.) - One of our dependencies (the `bitvec` trace) uses a crate called `radium` which doesn't compile under RISC-V due to incomplete autodetection logic in their `build.rs` file. The good news is that this is already fixed in the newest upstream version of `radium`, and the newest version of `bitvec` uses it. The bad news is that the newest version of `bitvec` is not currently released on crates.io, so we can't use it. I've [created an issue](https://github.com/ferrilab/ferrilab/issues/5) asking for a new release, but in the meantime I forked the currently used `radium` 0.7, [fixed the faulty logic](https://github.com/paritytech/radium-0.7-fork/commit/ed66c8a294b138c67f93499644051d97d4c7fbda) and used cargo's patching capabilities to use it for the RISC-V runtime builds. This might be a little hacky, but it is the least intrusive way to fix the problem, doesn't affect WASM builds at all, and we can trivially remove it once a new `bitvec` is released. - The new runtimes are added to the CI to make sure their compilation doesn't break.
69 lines
2.1 KiB
TOML
69 lines
2.1 KiB
TOML
[package]
|
|
name = "sp-consensus-beefy"
|
|
version = "13.0.0"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
license = "Apache-2.0"
|
|
homepage = "https://substrate.io"
|
|
repository.workspace = true
|
|
description = "Primitives for BEEFY protocol."
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
targets = ["x86_64-unknown-linux-gnu"]
|
|
|
|
[dependencies]
|
|
codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] }
|
|
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
serde = { version = "1.0.195", default-features = false, optional = true, features = ["alloc", "derive"] }
|
|
sp-api = { path = "../../api", default-features = false }
|
|
sp-application-crypto = { path = "../../application-crypto", default-features = false }
|
|
sp-core = { path = "../../core", default-features = false }
|
|
sp-crypto-hashing = { path = "../../crypto/hashing", default-features = false }
|
|
sp-io = { path = "../../io", default-features = false }
|
|
sp-mmr-primitives = { path = "../../merkle-mountain-range", default-features = false }
|
|
sp-runtime = { path = "../../runtime", default-features = false }
|
|
sp-std = { path = "../../std", default-features = false }
|
|
strum = { version = "0.24.1", features = ["derive"], default-features = false }
|
|
lazy_static = { version = "1.4.0", optional = true }
|
|
|
|
[dev-dependencies]
|
|
array-bytes = "6.1"
|
|
w3f-bls = { version = "0.1.3", features = ["std"] }
|
|
|
|
[features]
|
|
default = ["std"]
|
|
std = [
|
|
"codec/std",
|
|
"dep:lazy_static",
|
|
"scale-info/std",
|
|
"serde/std",
|
|
"sp-api/std",
|
|
"sp-application-crypto/std",
|
|
"sp-core/std",
|
|
"sp-crypto-hashing/std",
|
|
"sp-io/std",
|
|
"sp-mmr-primitives/std",
|
|
"sp-runtime/std",
|
|
"sp-std/std",
|
|
"strum/std",
|
|
]
|
|
|
|
# Serde support without relying on std features.
|
|
serde = [
|
|
"dep:serde",
|
|
"scale-info/serde",
|
|
"sp-application-crypto/serde",
|
|
"sp-core/serde",
|
|
"sp-runtime/serde",
|
|
]
|
|
|
|
# This feature adds BLS crypto primitives. It should not be used in production since
|
|
# the BLS implementation and interface may still be subject to significant change.
|
|
bls-experimental = [
|
|
"sp-application-crypto/bls-experimental",
|
|
"sp-core/bls-experimental",
|
|
]
|