Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 383946 Details for
Bug 520856
Portage >=2.2.9: Dependency resolver fails to handle update of media-libs/openjpeg (2.0.0:2/2 -> 2.1.0:2/7) + media-gfx/imagemagick (6.8.8.10-r1:0/6.8.8.10 -> 6.8.9.7:0/6.8.9.7)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
_slot_operator_update_probe: fix bug #520856
slot_operator_update_probe-fix-bug-520856.patch (text/plain), 2.79 KB, created by
Zac Medico
on 2014-08-30 07:27:29 UTC
(
hide
)
Description:
_slot_operator_update_probe: fix bug #520856
Filename:
MIME Type:
Creator:
Zac Medico
Created:
2014-08-30 07:27:29 UTC
Size:
2.79 KB
patch
obsolete
>From 98525d936909acb7399f52eb84e5a2fbfc22aa69 Mon Sep 17 00:00:00 2001 >From: Zac Medico <zmedico@gentoo.org> >Date: Sat, 30 Aug 2014 00:22:55 -0700 >Subject: [PATCH] _slot_operator_update_probe: fix bug #520856 > >This fixes the check_reverse_dependencies function (inside the depgraph >_slot_operator_update_probe method) to account for irrelevent parent >atoms from parents that need to be rebuilt or have been involved in >unsolved slot conflicts. > >X-Gentoo-Bug: 520856 >X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=520856 >--- > pym/_emerge/depgraph.py | 35 +++++++++++++++++++++++++++++++---- > 1 file changed, 31 insertions(+), 4 deletions(-) > >diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py >index 845a43a..d6cd24d 100644 >--- a/pym/_emerge/depgraph.py >+++ b/pym/_emerge/depgraph.py >@@ -1567,14 +1567,40 @@ class depgraph(object): > selective = "selective" in self._dynamic_config.myparams > want_downgrade = None > >- def check_reverse_dependencies(existing_pkg, candidate_pkg): >+ def check_reverse_dependencies(existing_pkg, candidate_pkg, >+ replacement_parent=None): > """ > Check if candidate_pkg satisfies all of existing_pkg's non- > slot operator parents. > """ >+ built_slot_operator_parents = set() > for parent, atom in self._dynamic_config._parent_atoms.get(existing_pkg, []): >- if atom.slot_operator == "=" and getattr(parent, "built", False): >- continue >+ if atom.slot_operator_built: >+ built_slot_operator_parents.add(parent) >+ >+ for parent, atom in self._dynamic_config._parent_atoms.get(existing_pkg, []): >+ if isinstance(parent, Package): >+ if parent in built_slot_operator_parents: >+ # This parent may need to be rebuilt, so its >+ # dependencies aren't necessarily relevant. >+ continue >+ >+ if replacement_parent is not None and \ >+ (replacement_parent.slot_atom == parent.slot_atom >+ or replacement_parent.cpv == parent.cpv): >+ # This parent is irrelevant because we intend to >+ # replace it with replacement_parent. >+ continue >+ >+ if any(pkg is not parent and >+ (pkg.slot_atom == parent.slot_atom or >+ pkg.cpv == parent.cpv) for pkg in >+ self._dynamic_config._package_tracker.match( >+ parent.root, Atom(parent.cp))): >+ # This parent may need to be eliminated due to a >+ # slot conflict, so its dependencies aren't >+ # necessarily relevant. >+ continue > > atom_set = InternalPackageSet(initial_atoms=(atom,), > allow_repo=True) >@@ -1693,7 +1719,8 @@ class depgraph(object): > continue > > if not insignificant and \ >- check_reverse_dependencies(dep.child, pkg): >+ check_reverse_dependencies(dep.child, pkg, >+ replacement_parent=replacement_parent): > > candidate_pkg_atoms.append((pkg, unevaluated_atom)) > candidate_pkgs.append(pkg) >-- >1.8.1.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 520856
:
383570
|
383572
|
383576
| 383946