I was wondering why I was still having old sys-apps/xdg-desktop-portal-gtk-1.8.0 and even emerge -avuDN world wasn't even mentioning a package couldn't be updated: # emerge -pvuDN world These are the packages that would be merged, in order: Calculating dependencies... done! Total: 0 packages, Size of downloads: 0 KiB If I try to manually update it, it fails with: # emerge -1av xdg-desktop-portal-gtk --backtrack=100 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/xdg-desktop-portal-gtk-1.14.0::gentoo [1.8.0::gentoo] USE="X wayland" 373 KiB Total: 1 package (1 upgrade), Size of downloads: 373 KiB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: sys-apps/xdg-desktop-portal-gtk:0 (sys-apps/xdg-desktop-portal-gtk-1.14.0:0/0::gentoo, ebuild scheduled for merge) USE="X wayland" ABI_X86="(64)" pulled in by sys-apps/xdg-desktop-portal-gtk (Argument) (sys-apps/xdg-desktop-portal-gtk-1.8.0:0/0::gentoo, installed) USE="X wayland" ABI_X86="(64)" pulled in by <sys-apps/xdg-desktop-portal-gtk-1.14.0 required by (gnome-base/gnome-shell-42.4-r1:0/0::gentoo, installed) USE="bluetooth browser-extension ibus networkmanager systemd (-elogind) -gtk-doc -telepathy -test" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_10 (-python3_11) -python3_8 -python3_9" ^ ^^^^^^ It may be possible to solve this problem by using package.mask to prevent one of those packages from being selected. However, it is also possible that conflicting dependencies exist such that they are impossible to satisfy simultaneously. If such a conflict exists in the dependencies of two different packages, then those packages can not be installed simultaneously. For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. But, to solve the dep, it simply needs to choose the other option listed in gnome-base/gnome-shell-42.4-r1 ebuild: || ( sys-apps/xdg-desktop-portal-gnome <sys-apps/xdg-desktop-portal-gtk-1.14.0 ) Indeed, if I try to merge both, it works: # emerge -1av xdg-desktop-portal-gtk xdg-desktop-portal-gnome These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/xdg-desktop-portal-gtk-1.14.0::gentoo [1.8.0::gentoo] USE="X wayland" 373 KiB [ebuild N ] sys-apps/xdg-desktop-portal-gnome-42.3::gentoo USE="X wayland" 117 KiB Total: 2 packages (1 upgrade, 1 new), Size of downloads: 489 KiB It looks like bug 161953, but I am surprised to keep the behavior of preferring installed package even if that ends up using a no longer existing ebuild that, at some point, will break for sure :/ I know I can workaround revbumping and changing the dep in gnome-shell to force the new package unconditionally... but I still find dangerous to default on keeping old/non-existing versions forever when it is possible to install the alternative offered by || ( ) dependency statement Thanks
1. For the world upgrade: if it's satisfied by an existing dep, it has no reason to swap. 2. For the individual emerge, yeah, it's held back, it's the same as https://wiki.gentoo.org/wiki/Project:Portage/FAQ#Why_is_there_a_dependency_conflict_when_I_attempt_to_upgrade_a_single_package.3F. If/when <sys-apps/xdg-desktop-portal-gtk-1.14.0 is masked, it'll upgrade. But it doesn't see a reason to flip flop for now.
The reason to flip-flop would be that the ebuild that satisfies the dep is no longer existing in the tree and, then, it will likely break in the future, either their old dependency tree or the package itself will stop working as the rest of the system keeps updating in the upcoming years (like happens in bug 760783 and others in its "See Also")
It looks like portage is doing the right thing, because the only version of xdg-desktop-portal-gtk available in the tree is not less than 1.14.0 # equery list -ipo sys-apps/xdg-desktop-portal-gtk * Searching for xdg-desktop-portal-gtk in sys-apps ... [IP-] [ ] sys-apps/xdg-desktop-portal-gtk-1.14.0:0 # equery list -ipo sys-apps/xdg-desktop-portal-gnome * Searching for xdg-desktop-portal-gnome in sys-apps ... [IP-] [ ] sys-apps/xdg-desktop-portal-gnome-42.3:0
(In reply to Pacho Ramos from comment #2) > The reason to flip-flop would be that the ebuild that satisfies the dep is > no longer existing in the tree and, then, it will likely break in the > future, either their old dependency tree or the package itself will stop > working as the rest of the system keeps updating in the upcoming years (like > happens in bug 760783 and others in its "See Also") Ah, thanks, I'd missed that there's no older versions in tree, oops. I'm wondering if it ever actually had this behaviour in the past or not, but I agree it seems desirable. (In reply to cyrillic from comment #3) > It looks like portage is doing the right thing, because the only version of > xdg-desktop-portal-gtk available in the tree is not less than 1.14.0 > > # equery list -ipo sys-apps/xdg-desktop-portal-gtk > * Searching for xdg-desktop-portal-gtk in sys-apps ... > [IP-] [ ] sys-apps/xdg-desktop-portal-gtk-1.14.0:0 > 1.14.0 isn't less thsn 1.14.0. # ls /var/db/repos/gentoo/sys-apps/xdg-desktop-portal-gtk Manifest metadata.xml xdg-desktop-portal-gtk-1.14.0.ebuild We only have 1.14.0 in tree.
*** Bug 877159 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f51df08c656a51a72831252a0233370f145b9891 commit f51df08c656a51a72831252a0233370f145b9891 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-10-14 20:30:44 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-10-14 20:31:08 +0000 gnome-base/gnome-shell: drop xdg-desktop-portal-gtk dep to workaround Portage bug Bug: https://bugs.gentoo.org/877159 Bug: https://bugs.gentoo.org/872227 Signed-off-by: Sam James <sam@gentoo.org> .../{gnome-shell-42.4-r3.ebuild => gnome-shell-42.4-r4.ebuild} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b79fe624316f1410e0ac77c10ded47222fcd9d57 commit b79fe624316f1410e0ac77c10ded47222fcd9d57 Author: Pacho Ramos <pacho@gentoo.org> AuthorDate: 2023-06-24 17:17:02 +0000 Commit: Pacho Ramos <pacho@gentoo.org> CommitDate: 2023-06-24 17:17:02 +0000 sci-chemistry/pymol: Drop dev-libs/msgpack[cxx(-)] to workaround portage bug Bug: https://bugs.gentoo.org/872227 Signed-off-by: Pacho Ramos <pacho@gentoo.org> sci-chemistry/pymol/pymol-2.5.0-r3.ebuild | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+)