mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-19 00:13:33 +00:00
2bad8d171a
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
21 lines
592 B
Awk
21 lines
592 B
Awk
# MAINTAINER: rust@FreeBSD.org
|
|
#
|
|
# Return (index, site, filename, wrksrc, crates) 5-tuples from git URL specs in CARGO_CRATES
|
|
|
|
END {
|
|
split(GIT_SOURCES, git_sources)
|
|
for (i = 1; i <= length(git_sources); i++) {
|
|
git_source = git_sources[i]
|
|
j = index(git_source, "@")
|
|
if (j == 0) {
|
|
warn("invalid source: %s", git_source)
|
|
} else {
|
|
crate_source = substr(git_source, j + 1)
|
|
crates = substr(git_source, 0, j - 1)
|
|
if (split_git_url(git_info, crate_source)) {
|
|
printf("%d %s %s %s %s\n", group++, git_info["site"], git_info["filename"], git_info["dir"], crates)
|
|
}
|
|
}
|
|
}
|
|
}
|