Cargo ebuilds which should migrate to optimized API
Citing mgorny on gentoo-dev:
Hi,
Over the weekend, I've pushed the cargo.eclass changes that provide a more optimal (read: much faster in metadata phase) API for ebuilds. However, for it to actually benefit Gentoo ebuilds need to be updated to use it.
The migration requires two changes:
$(cargo_crate_uris)
(or$(cargo_crate_uris ${CRATES})
) in SRC_URI needs to be replaced by${CARGO_CRATE_URIS}
. This requires that CRATES and GIT_CRATES are declared pre-inherit (this is already enforced for CRATES in EAPI 8, but it is not for GIT_CRATES).The CRATES variable (and other crate lists) need to use
@
as the separator between crate name and version instead of-
. The easiest way to do this is to use >=app-portage/pycargoebuild-0.7 to generate the variable. You can use the in-place mode to update the ebuild, then it will substitute the list in place:pycargoebuild -i foo-1.2.3.ebuild /directories/with/cargo-lock
Note that pycargoebuild won't replace $(cargo_crate_uris) automatically though.
-- Best regards, Michał Górny
We should adjust our ebuilds to use this new API as well. This issue tracks all the packages that need to be adjusted.