Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/resolver/, pym/portage/package/ebuild/, pym/_emerge/
Date: Mon, 27 Aug 2012 22:17:15
Message-Id: 1346105810.06697b0c3fec6cd5bbdd0a68c93261b2d25781d8.zmedico@gentoo
1 commit: 06697b0c3fec6cd5bbdd0a68c93261b2d25781d8
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Mon Aug 27 22:16:50 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Mon Aug 27 22:16:50 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=06697b0c
7
8 Pass eapi to check_required_use more.
9
10 ---
11 pym/_emerge/depgraph.py | 29 ++++++++++++++++++--------
12 pym/_emerge/resolver/circular_dependency.py | 9 +++++--
13 pym/portage/package/ebuild/doebuild.py | 2 +-
14 3 files changed, 27 insertions(+), 13 deletions(-)
15
16 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
17 index 0f3bc93..5c49e69 100644
18 --- a/pym/_emerge/depgraph.py
19 +++ b/pym/_emerge/depgraph.py
20 @@ -1482,7 +1482,8 @@ class depgraph(object):
21 required_use_is_sat = check_required_use(
22 pkg.metadata["REQUIRED_USE"],
23 self._pkg_use_enabled(pkg),
24 - pkg.iuse.is_valid_flag)
25 + pkg.iuse.is_valid_flag,
26 + eapi=pkg.metadata["EAPI"])
27 if not required_use_is_sat:
28 if dep.atom is not None and dep.parent is not None:
29 self._add_parent_atom(pkg, (dep.parent, dep.atom))
30 @@ -3372,7 +3373,8 @@ class depgraph(object):
31 if not check_required_use(
32 pkg.metadata["REQUIRED_USE"],
33 self._pkg_use_enabled(pkg),
34 - pkg.iuse.is_valid_flag):
35 + pkg.iuse.is_valid_flag,
36 + eapi=pkg.metadata["EAPI"]):
37 required_use_unsatisfied.append(pkg)
38 continue
39 root_slot = (pkg.root, pkg.slot_atom)
40 @@ -3431,8 +3433,10 @@ class depgraph(object):
41 new_use.add(flag)
42 for flag in need_disable:
43 new_use.discard(flag)
44 - if check_required_use(required_use, old_use, pkg.iuse.is_valid_flag) and \
45 - not check_required_use(required_use, new_use, pkg.iuse.is_valid_flag):
46 + if check_required_use(required_use, old_use,
47 + pkg.iuse.is_valid_flag, eapi=pkg.metadata["EAPI"]) \
48 + and not check_required_use(required_use, new_use,
49 + pkg.iuse.is_valid_flag, eapi=pkg.metadata["EAPI"]):
50 required_use_warning = ", this change violates use flag constraints " + \
51 "defined by %s: '%s'" % (pkg.cpv, human_readable_required_use(required_use))
52
53 @@ -3480,8 +3484,12 @@ class depgraph(object):
54 new_use.discard(flag)
55 else:
56 new_use.add(flag)
57 - if check_required_use(required_use, old_use, myparent.iuse.is_valid_flag) and \
58 - not check_required_use(required_use, new_use, myparent.iuse.is_valid_flag):
59 + if check_required_use(required_use, old_use,
60 + myparent.iuse.is_valid_flag,
61 + eapi=myparent.metadata["EAPI"]) and \
62 + not check_required_use(required_use, new_use,
63 + myparent.iuse.is_valid_flag,
64 + eapi=myparent.metadata["EAPI"]):
65 required_use_warning = ", this change violates use flag constraints " + \
66 "defined by %s: '%s'" % (myparent.cpv, \
67 human_readable_required_use(required_use))
68 @@ -3570,7 +3578,8 @@ class depgraph(object):
69 reduced_noise = check_required_use(
70 pkg.metadata["REQUIRED_USE"],
71 self._pkg_use_enabled(pkg),
72 - pkg.iuse.is_valid_flag).tounicode()
73 + pkg.iuse.is_valid_flag,
74 + eapi=pkg.metadata["EAPI"]).tounicode()
75 writemsg(" %s\n" % \
76 human_readable_required_use(reduced_noise),
77 noiselevel=-1)
78 @@ -4133,8 +4142,10 @@ class depgraph(object):
79 if new_changes != old_changes:
80 #Don't do the change if it violates REQUIRED_USE.
81 required_use = pkg.metadata.get("REQUIRED_USE")
82 - if required_use and check_required_use(required_use, old_use, pkg.iuse.is_valid_flag) and \
83 - not check_required_use(required_use, new_use, pkg.iuse.is_valid_flag):
84 + if required_use and check_required_use(required_use, old_use,
85 + pkg.iuse.is_valid_flag, eapi=pkg.metadata["EAPI"]) and \
86 + not check_required_use(required_use, new_use,
87 + pkg.iuse.is_valid_flag, eapi=pkg.metadata["EAPI"]):
88 return old_use
89
90 if any(x in pkg.use.mask for x in new_changes) or \
91
92 diff --git a/pym/_emerge/resolver/circular_dependency.py b/pym/_emerge/resolver/circular_dependency.py
93 index aca81fa..1433f41 100644
94 --- a/pym/_emerge/resolver/circular_dependency.py
95 +++ b/pym/_emerge/resolver/circular_dependency.py
96 @@ -1,4 +1,4 @@
97 -# Copyright 2010-2011 Gentoo Foundation
98 +# Copyright 2010-2012 Gentoo Foundation
99 # Distributed under the terms of the GNU General Public License v2
100
101 from __future__ import print_function
102 @@ -144,7 +144,8 @@ class circular_dependency_handler(object):
103 #If any of the flags we're going to touch is in REQUIRED_USE, add all
104 #other flags in REQUIRED_USE to affecting_use, to not lose any solution.
105 required_use_flags = get_required_use_flags(
106 - parent.metadata.get("REQUIRED_USE", ""))
107 + parent.metadata.get("REQUIRED_USE", ""),
108 + eapi=parent.metadata["EAPI"])
109
110 if affecting_use.intersection(required_use_flags):
111 # TODO: Find out exactly which REQUIRED_USE flags are
112 @@ -188,7 +189,9 @@ class circular_dependency_handler(object):
113 #Make sure it doesn't conflict with REQUIRED_USE.
114 required_use = parent.metadata.get("REQUIRED_USE", "")
115
116 - if check_required_use(required_use, current_use, parent.iuse.is_valid_flag):
117 + if check_required_use(required_use, current_use,
118 + parent.iuse.is_valid_flag,
119 + eapi=parent.metadata["EAPI"]):
120 use = self.depgraph._pkg_use_enabled(parent)
121 solution = set()
122 for flag, state in zip(affecting_use, use_state):
123
124 diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
125 index ef51da1..6e7e63c 100644
126 --- a/pym/portage/package/ebuild/doebuild.py
127 +++ b/pym/portage/package/ebuild/doebuild.py
128 @@ -1302,7 +1302,7 @@ def _validate_deps(mysettings, myroot, mydo, mydbapi):
129 pkg.metadata["REQUIRED_USE"] and \
130 eapi_has_required_use(pkg.metadata["EAPI"]):
131 result = check_required_use(pkg.metadata["REQUIRED_USE"],
132 - pkg.use.enabled, pkg.iuse.is_valid_flag)
133 + pkg.use.enabled, pkg.iuse.is_valid_flag, eapi=pkg.metadata["EAPI"])
134 if not result:
135 reduced_noise = result.tounicode()
136 writemsg("\n %s\n" % _("The following REQUIRED_USE flag" + \