HomeFreeBSD

Uses/cargo: Rework git source support based on patch-in-config sections

Description

Uses/cargo: Rework git source support based on patch-in-config sections

Git sources from Cargo.lock are added to CARGO_CRATES through
the normal mechanism of make cargo-crates by the porter. They
are used to populate MASTER_SITES, DISTFILES with static
git-archive(1) tarballs a la USE_GITHUB, USE_GITLAB. In the
configure phase we generate [patch] sections in the config file
which will cause cargo update to auto-update Cargo.lock to point
to the appropriate extraction directories.

Normally cargo update would connect to the network to update all
Git sources but since rust-1.55.0 our cargo has been patched to
skip this when CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE is set in the
environment.

This replaces the old CARGO_USE_GITHUB, CARGO_USE_GITLAB hacks
where this was done by editing all Cargo.toml with sed(1) calls.

Additionally, we try to automatically infer the individiual crate
sub-directories inside the Git sources based on package.name in
Cargo.toml to remove the need for CARGO_GIT_SUBDIR.

USES=cargo also now sets WRKSRC_crate_$name for each crate to
point to the crate extraction directories.

PR: 256581
Reviewed by: jbeich

Details

Provenance
tobikAuthored on Sep 7 2021, 2:08 PM
Parents
R11:124261fa7deb: lang/rust: Update to 1.56.0
Branches
Unknown
Tags
Unknown