Builds run cargo metadata --manifest-path Cargo.toml without a --target argument. This requires fetching metadata for all platforms.
Downstream (at least on Alpine) builds use the pattern:
# In the source-fetching stage
cargo fetch --locked
# In the build phase
export CARGO_NET_OFFLINE=true
gpep517 build-wheel --wheel-dir .dist …
The above separates fetching sources and compiling the package with those pre-fetched sources.
This fails for packages with py3-setuptools-rust, because it executes cargo metadata which, by default, wants metadata for packages for all targets.
I believe only the current target should be fetched instead (e.g.: rustc --print host-tuple).
Builds run
cargo metadata --manifest-path Cargo.tomlwithout a--targetargument. This requires fetching metadata for all platforms.Downstream (at least on Alpine) builds use the pattern:
The above separates fetching sources and compiling the package with those pre-fetched sources.
This fails for packages with
py3-setuptools-rust, because it executescargo metadatawhich, by default, wants metadata for packages for all targets.I believe only the current target should be fetched instead (e.g.:
rustc --print host-tuple).