[gentoo-dev] Migrating ebuilds to "optimized" cargo.eclass API
From
=?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to
All on Mon Jun 19 17:10:01 2023
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:
1. `$(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).
2. 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
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)