because if libgit2 changes soname, system-bootstrap rust will be unable to rebuild itself portage triggers rebuild after slotchange. cargo: error while loading shared libraries: libgit2.so.1.0 reported by user here. https://bugs.gentoo.org/749255#c7
if someone hits it - rollback to libgit2 version was build with (probably 1.0.1), and it will work again.
Both dev-lang/rust and virtual/rust are still trying to pull in >=dev-libs/libgit2-1.1.0:= . The ebuilds need to fixed to allow libgit2-1.0.x to be utilized.
(In reply to Carlos Konstanski from comment #2) > Both dev-lang/rust and virtual/rust are still trying to pull in > >=dev-libs/libgit2-1.1.0:= . The ebuilds need to fixed to allow > libgit2-1.0.x to be utilized. rust-1.47 has >=dev-libs/libgit2-0.99:= rust-1.48 has >=dev-libs/libgit2-1.1.0:= both are correct, what should be fixed here? dependencies reflect at least exact version bundled with libgit-sys crate upstream ships in vendor directory. in fact, 1.47 should pull at least version 1.0.0
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0899133bf373f531be502ed292a86e16a7b6347 commit e0899133bf373f531be502ed292a86e16a7b6347 Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2020-11-25 19:06:20 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2020-11-25 20:13:14 +0000 dev-lang/rust: revbump 1.47.0, fix several issues Don't depend on system libgit2 to avoid abi nightmare. Bug: https://bugs.gentoo.org/749381 Package-Manager: Portage-3.0.10, Repoman-3.0.2 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-lang/rust/rust-1.47.0-r2.ebuild | 615 ++++++++++++++++++++++++++++++++++++ 1 file changed, 615 insertions(+)
anyway, should be fixed soon. new versions no longer depend on libgit2 at all.
The following is from a rust-1.48 build. It's invoking 1.47 during the build, and that might be why the libgit2.so version mismatch is happening. >>> Compiling source in /var/tmp/portage/dev-lang/rust-1.48.0/work/rustc-1.48.0-src ... running: /usr/lib/rust/1.47.0/bin/cargo build --manifest-path /var/tmp/portage/dev-lang/rust-1.48.0/work/rustc-1.48.0-src/src/bootstrap/Cargo.toml --verbose --locked --frozen /usr/lib/rust/1.47.0/bin/cargo: error while loading shared libraries: libgit2.so.1.0: cannot open shared object file: No such file or directory
yeah I get it. you may need to either temporary install old libgit or set USE=-system-bootstrap to work around it. that's exactly the primary reason I removed libgit dependency and force it use internal one, not the system one.