1 |
X-Gentoo-Bug: 563844 |
2 |
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=563844 |
3 |
--- |
4 |
pym/_emerge/actions.py | 22 +++++++++++++++++++++- |
5 |
1 file changed, 21 insertions(+), 1 deletion(-) |
6 |
|
7 |
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py |
8 |
index 602715b..7f1cb59 100644 |
9 |
--- a/pym/_emerge/actions.py |
10 |
+++ b/pym/_emerge/actions.py |
11 |
@@ -863,11 +863,31 @@ def calc_depclean(settings, trees, ldpath_mtimes, |
12 |
|
13 |
def unresolved_deps(): |
14 |
|
15 |
+ soname_deps = set() |
16 |
unresolvable = set() |
17 |
for dep in resolver._dynamic_config._initially_unsatisfied_deps: |
18 |
if isinstance(dep.parent, Package) and \ |
19 |
(dep.priority > UnmergeDepPriority.SOFT): |
20 |
- unresolvable.add((dep.atom, dep.parent.cpv)) |
21 |
+ if dep.atom.soname: |
22 |
+ soname_deps.add((dep.atom, dep.parent.cpv)) |
23 |
+ else: |
24 |
+ unresolvable.add((dep.atom, dep.parent.cpv)) |
25 |
+ |
26 |
+ if soname_deps: |
27 |
+ # Generally, broken soname dependencies can safely be |
28 |
+ # suppressed by a REQUIRES_EXCLUDE setting in the ebuild, |
29 |
+ # so they should only trigger a warning message. |
30 |
+ prefix = warn(" * ") |
31 |
+ msg = [] |
32 |
+ msg.append("Broken soname dependencies found:") |
33 |
+ msg.append("") |
34 |
+ for atom, parent in soname_deps: |
35 |
+ msg.append(" %s required by:" % (atom,)) |
36 |
+ msg.append(" %s" % (parent,)) |
37 |
+ msg.append("") |
38 |
+ |
39 |
+ writemsg_level("".join("%s%s\n" % (prefix, line) for line in msg), |
40 |
+ level=logging.WARNING, noiselevel=-1) |
41 |
|
42 |
if not unresolvable: |
43 |
return False |
44 |
-- |
45 |
2.4.9 |