Summary: | Circular dependency between x11-libs/gtk+:2 and x11-themes/gtk-engines-adwaita | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | gentoo <gentoo> |
Component: | Current packages | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dev-portage, mitaspiotr, pms |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
URL: | https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-770008.1 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
gentoo@danielquinn.org
2016-10-13 17:57:11 UTC
So this seems to be the result of work in bug #569552. In your case some libraries are pulling gtk+:2 which pulls the engine which is perfectly normal with current USE="gtk gtk3" situation. We checked that package manager is supposed to be able to postpone building a pure RDEPEND to solve circular dependencies per PMS (8.1 Dependency Classes) but apparently this is not the case here. Could this be a bug in portage or is it a bad comprehension of the PMS ? Don't rely on crazy behavior like that. Just move adwaita to PDEPEND since it's not strictly required. (In reply to Gilles Dartiguelongue from comment #1) > We checked that package manager is supposed to be able to postpone building > a pure RDEPEND to solve circular dependencies per PMS (8.1 Dependency > Classes) but apparently this is not the case here. > > Could this be a bug in portage or is it a bad comprehension of the PMS ? It has to a pure runtime cycle for that to work, therefore it doesn't work because gtk-engines-adwaita has a build-time dependency on gtk+. Ok that's more precise. I'll fix the ebuild. Could this precision be added to PMS as well ? I'd rather ban the cycles completely and require people to use PDEPEND. This is safer, more portable and more predictable. I suggested Gilles to try with a pure RDEPEND because that's what it is conceptually and years ago we were told to use that and only use PDEPEND for some sort of exceptional cases. I guess some case didn't get tested fully. Would be nice if these things were clear then in devmanual or other places (maybe they are and we didn't find it). The information I knew was to use pure RDEPEND as RDEPEND and avoid PDEPEND if at all possible, now we are told different again, it seems. (In reply to Mart Raudsepp from comment #6) > I suggested Gilles to try with a pure RDEPEND because that's what it is > conceptually and years ago we were told to use that and only use PDEPEND for > some sort of exceptional cases. I guess some case didn't get tested fully. > Would be nice if these things were clear then in devmanual or other places > (maybe they are and we didn't find it). > The information I knew was to use pure RDEPEND as RDEPEND and avoid PDEPEND > if at all possible, now we are told different again, it seems. If the cycle is: A --(RDEPEND)--> B --(RDEPEND)--> A then the package manager can break it. However, for A --(DEPEND,RDEPEND)--> B --(RDEPEND)--> A breaking of the cycle is not possible, because B is considered usable only if its runtime dependencies are installed (see second bullet point in https://projects.gentoo.org/pms/6/pms.html#x1-750008.1). Here the cycle is of the second type, with package A being gtk-engines-adwaita and package B being gtk+:2. Fixed gtk+ dependency in https://cgit.gentoo.org/repo/gentoo.git/commit/?id=437f158a07bc43c67d31b18f11aecccd706d31ef. Should I leave this open so we work on a clearer text for PMS ? *** Bug 597262 has been marked as a duplicate of this bug. *** (In reply to Gilles Dartiguelongue from comment #8) > Should I leave this open so we work on a clearer text for PMS ? I'd rather suggest to leave PMS alone, but add a section about circular dependencies to the dependencies chapter of the devmanual: https://devmanual.gentoo.org/general-concepts/dependencies/index.html Presumably it would be cleaner to open a new bug for this, though. |