• [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)