dev-util/cargo-c has a dependency on =dev-libs/libgit2-1.8*:=. This is problematic. On my system, cargo-c is only installed as a build dependency, causing portage to update libgit2 to 1.9.0 a while ago, as it is not slotted. Now, I'm unable to do a clean full upgrade including --with-bdeps=y, and am unable to run, e.g., --depclean. I think it's generally undesirable to have dependencies on old versions without slotting. This appears to be a transitive dependency, and I'm not very familiar with the rust packaging ecosystem, so I don't know exactly what needs to happen to resolve this.
There is a new version of libgit2-sys https://lib.rs/crates/libgit2-sys Looking in Cargo.toml for cargo-c, it depends on cargo-0.86, which in turn depends on git2-0.19, which depends on libgit2-sys-0.17. The master branch of cargo has bumped git2 version to 0.20.0. So hopefully we will get a new release of cargo and cargo-c soon, which will solve the libgit dependency issue.
So, we are waiting for cargo to release and then for cargo-c to bump up the dependency and release too, right? Can't we bump up the dependencies ourself via a patch? PS: I'm not pressuring for this, just wondering
As I can see it's fairly easy to resolve in a working but not very elegant way. libgit2-sys has a bundled version of libgit2 which is disabled by setting LIBGIT2_NO_VENDOR=1. However, if we remove the dependency =dev-libs/libgit2-1.8*:= from the ebuild and if we do not export LIBGIT2_NO_VENDOR=1 in src_configure(), then cargo-c will not depend on an obsolete version of libgit2.
A new cargo-c has been released https://crates.io/crates/cargo-c/0.10.12+cargo-0.87.0 will it help?
Created attachment 924112 [details] cargo-c-0.10.12.ebuild I have no idea about rust ebuilds, but something like this seems to build successfully.
New ebuild LGTM, except it needs to bump RUST_MIN_VER="1.84.0", see https://github.com/lu-zero/cargo-c/commit/8c5b7af3d6edb6d99f7bffcc94adf550cfee65b3#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R12 Tested by building cargo-c-0.10.12, and then rustls-ffi-0.14.0 (which BDEPENDS on cargo-c).