Emerging dev-libs/libgit2-0.24.0 breaks dev-libs/libgit2-glib-0.23.10 breaks due to API [1] changes. [1] https://github.com/libgit2/libgit2/blob/master/CHANGELOG.md Reproducible: Always Steps to Reproduce: 1. emerge =dev-libs/libgit2-0.24.0 (succeeds) 2. emerge =dev-libs/libgit2-glib-0.23.10 (fails) Actual Results: ggit-merge-options.c: In function ‘ggit_merge_options_set_tree_flags’: ggit-merge-options.c:123:30: error: ‘git_merge_options {aka struct <anonymous>}’ has no member named ‘tree_flags’ merge_options->merge_options.tree_flags = (git_merge_tree_flag_t)tree_flags; ^ ggit-merge-options.c:123:45: error: ‘git_merge_tree_flag_t’ undeclared (first use in this function) merge_options->merge_options.tree_flags = (git_merge_tree_flag_t)tree_flags; ^ ggit-merge-options.c:123:45: note: each undeclared identifier is reported only once for each function it appears in ggit-merge-options.c:123:67: error: expected ‘;’ before ‘tree_flags’ merge_options->merge_options.tree_flags = (git_merge_tree_flag_t)tree_flags; ^ ggit-merge-options.c: In function ‘ggit_merge_options_get_tree_flags’: ggit-merge-options.c:139:57: error: ‘git_merge_options {aka struct <anonymous>}’ has no member named ‘tree_flags’ return (GgitMergeTreeFlags)merge_options->merge_options.tree_flags; ^ ggit-merge-options.c: In function ‘ggit_merge_options_set_file_flags’: ggit-merge-options.c:300:45: error: ‘git_merge_file_flags_t’ undeclared (first use in this function) merge_options->merge_options.file_flags = (git_merge_file_flags_t)file_flags; ^ ggit-merge-options.c:300:68: error: expected ‘;’ before ‘file_flags’ merge_options->merge_options.file_flags = (git_merge_file_flags_t)file_flags; ^ ggit-merge-options.c: In function ‘ggit_merge_options_get_tree_flags’: ggit-merge-options.c:140:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Makefile:778: recipe for target 'ggit-merge-options.lo' failed Expected Results: The dependencies of dev-libs/libgit2-glib-0.23.10 should specify dev-libs/libgit2:0/23 instead of >=dev-libs/libgit2-0.23.0:=
Fixed by pinning to <0.24 until a newer version of libgit2-glib is released upstream. Thanks for reporting. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=112c2f6c7e1921971a449d317d74c8fdfe593440
We will probably need to start always depending on something like =dev-libs/libgit2-0.23* always in the future to prevent this revbumps for adding the blockers from being needed when libgit2 upstream releases a new major version broken the reverse deps :(
(In reply to Pacho Ramos from comment #2) > We will probably need to start always depending on something like > =dev-libs/libgit2-0.23* always in the future to prevent this revbumps for > adding the blockers from being needed when libgit2 upstream releases a new > major version broken the reverse deps :( I think it's better to use the subslot here, since libgit2 provides one; I've added libgit2-glib-0.24.0 with a depency on >=dev-libs/libgit2-0.24.0:0/24 https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a9a91c3a39d23ba34203fe4bebc72310a53079e3
Umm, interesting, thanks for the tip