cargo wrapper does not replace source of deps that are not from crates.io

Bug #2009512 reported by Denison Barbosa
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cargo (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

cargo version: 0.68.0+ds0ubuntu1-0ubuntu1

In order to use vendored dependencies in Rust, you need to replace the source of the crate (commonly crates.io) by a local path which points to your vendored dependencies.
The wrapper provided by the cargo package has a prepare-debian function that auto generates the file config.toml, which is used to override said sources, with the following template:
"
[source.crates-io]
replace-with = "dh-cargo-registry"

[source.dh-cargo-registry]
directory = "{0}"
", where 0 corresponds to the path of the local dependencies.

If the package has dependencies from sources other than crates.io, the wrapper won't replace those sources by the vendored path and instead you need to manually patch the mentioned config file to replace your other sources, e.g.:
"
[source.other-than-crates-io]
replace-with = "dh-cargo-registry"
"

An example of this fix can be found at https://github.com/ubuntu/aad-auth/commit/e8583303402a79a72acaf97beb4c38ac80f858bb.

All the dependencies of the project are listed in the Cargo.lock file. The wrapper should consult this file in order to get the dependencies sources and then override them in the config.toml file to ensure that each source is replaced by its vendored counterpart.

Simon Chopin (schopin)
Changed in dh-cargo (Ubuntu):
importance: Undecided → Wishlist
status: New → Triaged
summary: - dh-cargo does not replace source of deps that are not from crates.io
+ cargo wrapper does not replace source of deps that are not from
+ crates.io
affects: dh-cargo (Ubuntu) → cargo (Ubuntu)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.