public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Zac Medico" <zmedico@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/resolver/
Date: Sat, 11 Jun 2011 01:31:10 +0000 (UTC)	[thread overview]
Message-ID: <6d3bae4d1d48033668107863bf30d483792350e9.zmedico@gentoo> (raw)

commit:     6d3bae4d1d48033668107863bf30d483792350e9
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 11 01:30:37 2011 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jun 11 01:30:37 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6d3bae4d

slot_collision_notice: don't omit any use dep

When USE flags are removed, it can be essential to see all broken
reverse dependencies here, so don't omit any. If the list is long,
people can simply use a pager.

---
 pym/_emerge/resolver/slot_collision.py |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py
index 8847659..d43b889 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -309,6 +309,7 @@ class slot_conflict_handler(object):
 					msg.append(" pulled in by\n")
 
 					selected_for_display = set()
+					unconditional_use_deps = set()
 
 					for (type, sub_type), parents in collision_reasons.items():
 						#From each (type, sub_type) pair select at least one atom.
@@ -335,8 +336,6 @@ class slot_conflict_handler(object):
 							#not possible to change them on the parent, which means there
 							#are fewer possible solutions.
 							use = sub_type
-							hard_matches = set()
-							conditional_matches = set()
 							for ppkg, atom, other_pkg in parents:
 								parent_use = None
 								if isinstance(ppkg, Package):
@@ -345,17 +344,13 @@ class slot_conflict_handler(object):
 									_pkg_use_enabled(other_pkg), other_pkg.iuse.is_valid_flag,
 									parent_use=parent_use)
 								if use in violated_atom.use.enabled.union(violated_atom.use.disabled):
-									hard_matches.add((ppkg, atom))
-								else:
-									conditional_matches.add((ppkg, atom))
-
-							if hard_matches:
-								matches = hard_matches
-							else:
-								matches = conditional_matches
-							
-							if not selected_for_display.intersection(matches):
-								selected_for_display.add(matches.pop())
+									unconditional_use_deps.add((ppkg, atom))
+								# When USE flags are removed, it can be
+								# essential to see all broken reverse
+								# dependencies here, so don't omit any.
+								# If the list is long, people can simply
+								# use a pager.
+								selected_for_display.add((ppkg, atom))
 
 					def highlight_violations(atom, version, use=[]):
 						"""Colorize parts of an atom"""
@@ -400,7 +395,14 @@ class slot_conflict_handler(object):
 						
 						return atom_str
 
-					for parent_atom in selected_for_display:
+					# Show unconditional use deps first, since those
+					# are more problematic than the conditional kind.
+					ordered_list = list(unconditional_use_deps)
+					if len(selected_for_display) > len(unconditional_use_deps):
+						for parent_atom in selected_for_display:
+							if parent_atom not in unconditional_use_deps:
+								ordered_list.append(parent_atom)
+					for parent_atom in ordered_list:
 						parent, atom = parent_atom
 						msg.append(2*indent)
 						if isinstance(parent,



             reply	other threads:[~2011-06-11  1:31 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-11  1:31 Zac Medico [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-10-04  0:30 [gentoo-commits] proj/portage:master commit in: pym/_emerge/resolver/ Zac Medico
2016-12-19  5:15 Zac Medico
2016-05-27  8:33 Alexander Berntsen
2015-08-03 18:36 Zac Medico
2015-07-29 18:44 Zac Medico
2014-12-13 14:51 Arfrever Frehtes Taifersar Arahesis
2014-08-23  7:21 Zac Medico
2014-02-23 21:38 Sebastian Luther
2014-02-05 19:42 Sebastian Luther
2014-02-05 19:42 Sebastian Luther
2013-03-20 20:32 Zac Medico
2013-03-20 19:23 Zac Medico
2013-03-18 21:28 Zac Medico
2013-03-18 21:12 Zac Medico
2013-03-18 20:58 Zac Medico
2013-02-28  0:25 Zac Medico
2013-02-28  0:12 Zac Medico
2013-02-27 23:39 Zac Medico
2013-01-24  1:18 Zac Medico
2012-10-15 17:17 Arfrever Frehtes Taifersar Arahesis
2012-10-15  4:06 Arfrever Frehtes Taifersar Arahesis
2012-10-14 20:02 Arfrever Frehtes Taifersar Arahesis
2012-10-14 19:54 Arfrever Frehtes Taifersar Arahesis
2012-10-14  2:53 Zac Medico
2012-10-14  2:44 Zac Medico
2012-09-25  2:00 Zac Medico
2012-09-24  3:12 Zac Medico
2012-09-14  2:08 Zac Medico
2012-09-14  1:04 Zac Medico
2012-06-27 21:56 Zac Medico
2012-06-23  6:00 Zac Medico
2012-06-21  4:43 Zac Medico
2012-06-20 21:24 Zac Medico
2012-04-05 19:37 Zac Medico
2012-03-22 19:00 Zac Medico
2012-03-22 18:10 Zac Medico
2012-03-22 17:38 Zac Medico
2012-03-22 17:15 Zac Medico
2012-03-13 17:22 Zac Medico
2012-01-28  2:23 Arfrever Frehtes Taifersar Arahesis
2012-01-28  1:51 Arfrever Frehtes Taifersar Arahesis
2012-01-23 17:13 Arfrever Frehtes Taifersar Arahesis
2012-01-22  3:57 Arfrever Frehtes Taifersar Arahesis
2012-01-22  3:47 Arfrever Frehtes Taifersar Arahesis
2011-11-18  5:58 Zac Medico
2011-11-18  1:43 Zac Medico
2011-11-07 18:34 Zac Medico
2011-11-07  7:37 Zac Medico
2011-10-19 21:32 Zac Medico
2011-10-19 21:25 Zac Medico
2011-10-02 20:11 Zac Medico
2011-09-17 17:51 Zac Medico
2011-07-27 10:34 Zac Medico
2011-07-10 13:35 Zac Medico
2011-07-10 12:23 Zac Medico
2011-07-10 10:41 Zac Medico
2011-07-10  1:58 Zac Medico
2011-07-10  1:31 Zac Medico
2011-07-09 22:24 Zac Medico
2011-06-21  8:15 Zac Medico
2011-03-15 22:59 Zac Medico

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6d3bae4d1d48033668107863bf30d483792350e9.zmedico@gentoo \
    --to=zmedico@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox