commit: 036a0785d2595defc55ef03e424ffdf739a108b1 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Wed Dec 6 00:26:17 2023 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Wed Dec 6 16:06:00 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=036a0785
circular_dependency: Handle SonameAtom Treat soname deps is as unconditional for now. In some cases they can be avoided by a rebuild with changed USE, but ebuilds sometimes do not specify the corresponding conditional dependency (especially for system packages like gcc which provides libstdc++.so.6 and libgcc_s.so.1). Bug: https://bugs.gentoo.org/919311 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/_emerge/resolver/circular_dependency.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/_emerge/resolver/circular_dependency.py b/lib/_emerge/resolver/circular_dependency.py index c88b18a574..cd612e3130 100644 --- a/lib/_emerge/resolver/circular_dependency.py +++ b/lib/_emerge/resolver/circular_dependency.py @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Gentoo Authors +# Copyright 2010-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 import logging @@ -132,9 +132,20 @@ class circular_dependency_handler: for ppkg, atom in parent_atoms: if ppkg == parent: changed_parent = ppkg - parent_atom = atom.unevaluated_atom + parent_atom = atom break + if parent_atom.package: + parent_atom = parent_atom.unevaluated_atom + else: + # Treat soname deps as unconditional for now. In some + # cases they can be avoided by a rebuild with changed + # USE, but ebuilds sometimes do not specify the + # corresponding conditional dependency (especially for + # system packages like gcc which provides libstdc++.so.6 + # and libgcc_s.so.1). + continue + try: affecting_use = extract_affecting_use( dep, parent_atom, eapi=parent.eapi
