1 |
commit: 78ba7f0d3a3a2defdf9807ef2e8138965490a2fc |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Aug 29 20:23:22 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 29 20:23:22 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=78ba7f0d |
7 |
|
8 |
Rename slot-abi stuff to refer to slot-operator. |
9 |
|
10 |
This makes it consistent with the language in the PMS eapi-5 branch: |
11 |
http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=5d6749ac9e5ddc5b1daaad7737b65fa81c6ece47 |
12 |
|
13 |
--- |
14 |
NEWS | 4 +- |
15 |
doc/package/ebuild/eapi/4-slot-abi.docbook | 12 +- |
16 |
man/emerge.1 | 16 ++-- |
17 |
pym/_emerge/FakeVartree.py | 20 ++-- |
18 |
pym/_emerge/Package.py | 4 +- |
19 |
pym/_emerge/Scheduler.py | 6 +- |
20 |
pym/_emerge/create_depgraph_params.py | 20 ++-- |
21 |
pym/_emerge/depgraph.py | 102 ++++++++++---------- |
22 |
pym/_emerge/main.py | 16 ++-- |
23 |
pym/_emerge/resolver/backtracking.py | 16 ++-- |
24 |
pym/_emerge/resolver/slot_collision.py | 4 +- |
25 |
pym/portage/dbapi/__init__.py | 6 +- |
26 |
pym/portage/dep/__init__.py | 94 +++++++++--------- |
27 |
pym/portage/dep/_slot_abi.py | 24 +++--- |
28 |
pym/portage/eapi.py | 6 +- |
29 |
pym/portage/package/ebuild/doebuild.py | 8 +- |
30 |
pym/portage/tests/dep/testAtom.py | 16 ++-- |
31 |
pym/portage/tests/dep/test_match_from_list.py | 6 +- |
32 |
pym/portage/tests/resolver/test_complete_graph.py | 4 +- |
33 |
pym/portage/tests/resolver/test_slot_abi.py | 26 +++--- |
34 |
.../tests/resolver/test_slot_abi_downgrade.py | 8 +- |
35 |
pym/portage/versions.py | 10 +- |
36 |
22 files changed, 214 insertions(+), 214 deletions(-) |
37 |
|
38 |
diff --git a/NEWS b/NEWS |
39 |
index 9a2f24f..b294fa5 100644 |
40 |
--- a/NEWS |
41 |
+++ b/NEWS |
42 |
@@ -15,8 +15,8 @@ portage-2.1.11 |
43 |
|
44 |
* Add support for experimental EAPI "4-slot-abi". Refer to the corresponding |
45 |
html documentation that is installed with USE=doc, and also to the emerge(1) |
46 |
- man page for information about the related --ignore-built-slot-abi-deps and |
47 |
- --rebuild-if-new-slot-abi options. |
48 |
+ man page for information about the related --ignore-built-slot-operator-deps and |
49 |
+ --rebuild-if-new-slot options. |
50 |
|
51 |
portage-2.1.10 |
52 |
------------- |
53 |
|
54 |
diff --git a/doc/package/ebuild/eapi/4-slot-abi.docbook b/doc/package/ebuild/eapi/4-slot-abi.docbook |
55 |
index 696d0bf..08e2cef 100644 |
56 |
--- a/doc/package/ebuild/eapi/4-slot-abi.docbook |
57 |
+++ b/doc/package/ebuild/eapi/4-slot-abi.docbook |
58 |
@@ -28,12 +28,12 @@ Refer to the |
59 |
</para> |
60 |
</section> |
61 |
<section id='package-ebuild-eapi-4-slot-abi-metadata-dependency-atom-slot-abi-equal-operator'> |
62 |
-<title>Dependency Atom SLOT/ABI := Operator</title> |
63 |
+<title>Dependency Atom slot/sub-slot := Operator</title> |
64 |
<para> |
65 |
-Dependency atom syntax now supports SLOT/ABI := operators which allow the |
66 |
-specific SLOT/ABI that a package is built against to be recorded, so that it's |
67 |
+Dependency atom syntax now supports slot/sub-slot := operators which allow the |
68 |
+specific slot/sub-slot that a package is built against to be recorded, so that it's |
69 |
possible to automatically determine when a package needs to be rebuilt due to |
70 |
-having a dependency upgraded to a different SLOT/ABI. |
71 |
+having a dependency upgraded to a different slot/sub-slot. |
72 |
</para> |
73 |
<para> |
74 |
For example, if a package is built |
75 |
@@ -50,13 +50,13 @@ not contain a sub-slot part, the sub-slot is considered to be implicitly equal |
76 |
to "4.8". |
77 |
</para> |
78 |
<para> |
79 |
-When dependencies are rewritten as described above, the SLOT/ABI recorded in |
80 |
+When dependencies are rewritten as described above, the slot/sub-slot recorded in |
81 |
the atom is always equal to that of the highest matched version that is |
82 |
installed at build time. |
83 |
</para> |
84 |
</section> |
85 |
<section id='package-ebuild-eapi-4-slot-abi-metadata-dependency-atom-slot-abi-asterisk-operator'> |
86 |
-<title>Dependency Atom SLOT/ABI :* Operator</title> |
87 |
+<title>Dependency Atom slot/sub-slot :* Operator</title> |
88 |
<para> |
89 |
The new :* operator is used to express dependencies that can change versions |
90 |
at runtime without requiring reverse dependencies to be rebuilt. For example, |
91 |
|
92 |
diff --git a/man/emerge.1 b/man/emerge.1 |
93 |
index 7aa4622..36e3469 100644 |
94 |
--- a/man/emerge.1 |
95 |
+++ b/man/emerge.1 |
96 |
@@ -485,12 +485,12 @@ remote server are preferred over local packages if they are not identical. |
97 |
.BR "\-\-ignore-default-opts" |
98 |
Causes \fIEMERGE_DEFAULT_OPTS\fR (see \fBmake.conf\fR(5)) to be ignored. |
99 |
.TP |
100 |
-.BR "\-\-ignore\-built\-slot\-abi\-deps < y | n >" |
101 |
-Ignore the SLOT/ABI := operator parts of dependencies that have |
102 |
+.BR "\-\-ignore\-built\-slot\-operator\-deps < y | n >" |
103 |
+Ignore the slot/sub\-slot := operator parts of dependencies that have |
104 |
been recorded when packages where built. This option is intended |
105 |
only for debugging purposes, and it only affects built packages |
106 |
-that specify SLOT/ABI := operator dependencies using the |
107 |
-experimental "4\-slot\-abi" EAPI. |
108 |
+that specify slot/sub\-slot := operator dependencies using the |
109 |
+experimental "4\-slot\-abi" or "5_pre1" EAPIs. |
110 |
.TP |
111 |
.BR "-j [JOBS], \-\-jobs[=JOBS]" |
112 |
Specifies the number of packages to build simultaneously. If this option is |
113 |
@@ -645,13 +645,13 @@ Disable the warning message that's shown prior to |
114 |
to be set in the \fBmake.conf\fR(5) |
115 |
\fBEMERGE_DEFAULT_OPTS\fR variable. |
116 |
.TP |
117 |
-.BR "\-\-rebuild\-if\-new\-slot\-abi [ y | n ]" |
118 |
-Automatically rebuild or reinstall packages when SLOT/ABI := |
119 |
+.BR "\-\-rebuild\-if\-new\-slot [ y | n ]" |
120 |
+Automatically rebuild or reinstall packages when slot/sub\-slot := |
121 |
operator dependencies can be satisfied by a newer slot, so that |
122 |
older packages slots will become eligible for removal by the |
123 |
\-\-depclean action as soon as possible. This option only |
124 |
-affects packages that specify SLOT/ABI dependencies using the |
125 |
-experimental "4\-slot\-abi" EAPI. Since this option requires |
126 |
+affects packages that specify slot/sub\-slot := dependencies using the |
127 |
+experimental "4\-slot\-abi" or "5_pre1" EAPIs. Since this option requires |
128 |
checking of reverse dependencies, it enables \-\-complete\-graph |
129 |
mode whenever a new slot is installed. This option is enabled by |
130 |
default. |
131 |
|
132 |
diff --git a/pym/_emerge/FakeVartree.py b/pym/_emerge/FakeVartree.py |
133 |
index ce15f5a..3865015 100644 |
134 |
--- a/pym/_emerge/FakeVartree.py |
135 |
+++ b/pym/_emerge/FakeVartree.py |
136 |
@@ -10,7 +10,7 @@ from _emerge.Package import Package |
137 |
from _emerge.PackageVirtualDbapi import PackageVirtualDbapi |
138 |
from portage.const import VDB_PATH |
139 |
from portage.dbapi.vartree import vartree |
140 |
-from portage.dep._slot_abi import find_built_slot_abi_atoms |
141 |
+from portage.dep._slot_abi import find_built_slot_operator_atoms |
142 |
from portage.eapi import _get_eapi_attrs |
143 |
from portage.exception import InvalidDependString |
144 |
from portage.repository.config import _gen_valid_repo |
145 |
@@ -45,10 +45,10 @@ class FakeVartree(vartree): |
146 |
is not a matching ebuild in the tree). Instances of this class are not |
147 |
populated until the sync() method is called.""" |
148 |
def __init__(self, root_config, pkg_cache=None, pkg_root_config=None, |
149 |
- dynamic_deps=True, ignore_built_slot_abi_deps=False): |
150 |
+ dynamic_deps=True, ignore_built_slot_operator_deps=False): |
151 |
self._root_config = root_config |
152 |
self._dynamic_deps = dynamic_deps |
153 |
- self._ignore_built_slot_abi_deps = ignore_built_slot_abi_deps |
154 |
+ self._ignore_built_slot_operator_deps = ignore_built_slot_operator_deps |
155 |
if pkg_root_config is None: |
156 |
pkg_root_config = self._root_config |
157 |
self._pkg_root_config = pkg_root_config |
158 |
@@ -112,11 +112,11 @@ class FakeVartree(vartree): |
159 |
installed_eapi = pkg_obj.metadata['EAPI'] |
160 |
repo = pkg_obj.metadata['repository'] |
161 |
eapi_attrs = _get_eapi_attrs(installed_eapi) |
162 |
- built_slot_abi_atoms = None |
163 |
+ built_slot_operator_atoms = None |
164 |
|
165 |
- if eapi_attrs.slot_abi and not self._ignore_built_slot_abi_deps: |
166 |
+ if eapi_attrs.slot_operator and not self._ignore_built_slot_operator_deps: |
167 |
try: |
168 |
- built_slot_abi_atoms = find_built_slot_abi_atoms(pkg_obj) |
169 |
+ built_slot_operator_atoms = find_built_slot_operator_atoms(pkg_obj) |
170 |
except InvalidDependString: |
171 |
pass |
172 |
|
173 |
@@ -137,12 +137,12 @@ class FakeVartree(vartree): |
174 |
portage.eapi_is_supported(installed_eapi)): |
175 |
raise KeyError(pkg) |
176 |
|
177 |
- # preserve built SLOT/ABI := operator deps |
178 |
- if built_slot_abi_atoms: |
179 |
+ # preserve built slot/sub-slot := operator deps |
180 |
+ if built_slot_operator_atoms: |
181 |
live_eapi_attrs = _get_eapi_attrs(live_metadata["EAPI"]) |
182 |
- if not live_eapi_attrs.slot_abi: |
183 |
+ if not live_eapi_attrs.slot_operator: |
184 |
raise KeyError(pkg) |
185 |
- for k, v in built_slot_abi_atoms.items(): |
186 |
+ for k, v in built_slot_operator_atoms.items(): |
187 |
live_metadata[k] += (" " + |
188 |
" ".join(_unicode(atom) for atom in v)) |
189 |
|
190 |
|
191 |
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py |
192 |
index ce51a8b..957d5d3 100644 |
193 |
--- a/pym/_emerge/Package.py |
194 |
+++ b/pym/_emerge/Package.py |
195 |
@@ -29,7 +29,7 @@ class Package(Task): |
196 |
"root_config", "type_name", |
197 |
"category", "counter", "cp", "cpv_split", |
198 |
"inherited", "iuse", "mtime", |
199 |
- "pf", "root", "slot", "slot_abi", "slot_atom", "version") + \ |
200 |
+ "pf", "root", "slot", "sub_slot", "slot_atom", "version") + \ |
201 |
("_invalid", "_raw_metadata", "_masks", "_use", |
202 |
"_validated_atoms", "_visible") |
203 |
|
204 |
@@ -61,7 +61,7 @@ class Package(Task): |
205 |
"SLOT: invalid value: '%s'" % self.metadata["SLOT"]) |
206 |
self.cp = self.cpv.cp |
207 |
self.slot = self.cpv.slot |
208 |
- self.slot_abi = self.cpv.slot_abi |
209 |
+ self.sub_slot = self.cpv.sub_slot |
210 |
# sync metadata with validated repo (may be UNKNOWN_REPO) |
211 |
self.metadata['repository'] = self.cpv.repo |
212 |
|
213 |
|
214 |
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py |
215 |
index d40cedd..8ee9a58 100644 |
216 |
--- a/pym/_emerge/Scheduler.py |
217 |
+++ b/pym/_emerge/Scheduler.py |
218 |
@@ -328,15 +328,15 @@ class Scheduler(PollScheduler): |
219 |
self._set_graph_config(graph_config) |
220 |
self._blocker_db = {} |
221 |
dynamic_deps = self.myopts.get("--dynamic-deps", "y") != "n" |
222 |
- ignore_built_slot_abi_deps = self.myopts.get( |
223 |
- "--ignore-built-slot-abi-deps", "n") == "y" |
224 |
+ ignore_built_slot_operator_deps = self.myopts.get( |
225 |
+ "--ignore-built-slot-operator-deps", "n") == "y" |
226 |
for root in self.trees: |
227 |
if self._uninstall_only: |
228 |
continue |
229 |
if graph_config is None: |
230 |
fake_vartree = FakeVartree(self.trees[root]["root_config"], |
231 |
pkg_cache=self._pkg_cache, dynamic_deps=dynamic_deps, |
232 |
- ignore_built_slot_abi_deps=ignore_built_slot_abi_deps) |
233 |
+ ignore_built_slot_operator_deps=ignore_built_slot_operator_deps) |
234 |
fake_vartree.sync() |
235 |
else: |
236 |
fake_vartree = graph_config.trees[root]['vartree'] |
237 |
|
238 |
diff --git a/pym/_emerge/create_depgraph_params.py b/pym/_emerge/create_depgraph_params.py |
239 |
index 2838e93..98a7646 100644 |
240 |
--- a/pym/_emerge/create_depgraph_params.py |
241 |
+++ b/pym/_emerge/create_depgraph_params.py |
242 |
@@ -15,11 +15,11 @@ def create_depgraph_params(myopts, myaction): |
243 |
# complete: completely account for all known dependencies |
244 |
# remove: build graph for use in removing packages |
245 |
# rebuilt_binaries: replace installed packages with rebuilt binaries |
246 |
- # rebuild_if_new_slot_abi: rebuild or reinstall packages when |
247 |
- # SLOT/ABI := operator dependencies can be satisfied by a newer |
248 |
- # SLOT/ABI, so that older packages slots will become eligible for |
249 |
+ # rebuild_if_new_slot: rebuild or reinstall packages when |
250 |
+ # slot/sub-slot := operator dependencies can be satisfied by a newer |
251 |
+ # slot/sub-slot, so that older packages slots will become eligible for |
252 |
# removal by the --depclean action as soon as possible |
253 |
- # ignore_built_slot_abi_deps: ignore the SLOT/ABI := operator parts |
254 |
+ # ignore_built_slot_operator_deps: ignore the slot/sub-slot := operator parts |
255 |
# of dependencies that have been recorded when packages where built |
256 |
myparams = {"recurse" : True} |
257 |
|
258 |
@@ -27,9 +27,9 @@ def create_depgraph_params(myopts, myaction): |
259 |
if bdeps is not None: |
260 |
myparams["bdeps"] = bdeps |
261 |
|
262 |
- ignore_built_slot_abi_deps = myopts.get("--ignore-built-slot-abi-deps") |
263 |
- if ignore_built_slot_abi_deps is not None: |
264 |
- myparams["ignore_built_slot_abi_deps"] = ignore_built_slot_abi_deps |
265 |
+ ignore_built_slot_operator_deps = myopts.get("--ignore-built-slot-operator-deps") |
266 |
+ if ignore_built_slot_operator_deps is not None: |
267 |
+ myparams["ignore_built_slot_operator_deps"] = ignore_built_slot_operator_deps |
268 |
|
269 |
dynamic_deps = myopts.get("--dynamic-deps") |
270 |
if dynamic_deps is not None: |
271 |
@@ -41,9 +41,9 @@ def create_depgraph_params(myopts, myaction): |
272 |
myparams["selective"] = True |
273 |
return myparams |
274 |
|
275 |
- rebuild_if_new_slot_abi = myopts.get('--rebuild-if-new-slot-abi') |
276 |
- if rebuild_if_new_slot_abi is not None: |
277 |
- myparams['rebuild_if_new_slot_abi'] = rebuild_if_new_slot_abi |
278 |
+ rebuild_if_new_slot = myopts.get('--rebuild-if-new-slot') |
279 |
+ if rebuild_if_new_slot is not None: |
280 |
+ myparams['rebuild_if_new_slot'] = rebuild_if_new_slot |
281 |
|
282 |
if "--update" in myopts or \ |
283 |
"--newuse" in myopts or \ |
284 |
|
285 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
286 |
index 5c49e69..7df93e1 100644 |
287 |
--- a/pym/_emerge/depgraph.py |
288 |
+++ b/pym/_emerge/depgraph.py |
289 |
@@ -22,7 +22,7 @@ from portage.dbapi.dep_expand import dep_expand |
290 |
from portage.dep import Atom, best_match_to_list, extract_affecting_use, \ |
291 |
check_required_use, human_readable_required_use, match_from_list, \ |
292 |
_repo_separator |
293 |
-from portage.dep._slot_abi import ignore_built_slot_abi_deps |
294 |
+from portage.dep._slot_abi import ignore_built_slot_operator_deps |
295 |
from portage.eapi import eapi_has_strong_blocks, eapi_has_required_use |
296 |
from portage.exception import (InvalidAtom, InvalidDependString, |
297 |
PackageNotFound, PortageException) |
298 |
@@ -115,8 +115,8 @@ class _frozen_depgraph_config(object): |
299 |
self._pkg_cache = {} |
300 |
self._highest_license_masked = {} |
301 |
dynamic_deps = myopts.get("--dynamic-deps", "y") != "n" |
302 |
- ignore_built_slot_abi_deps = myopts.get( |
303 |
- "--ignore-built-slot-abi-deps", "n") == "y" |
304 |
+ ignore_built_slot_operator_deps = myopts.get( |
305 |
+ "--ignore-built-slot-operator-deps", "n") == "y" |
306 |
for myroot in trees: |
307 |
self.trees[myroot] = {} |
308 |
# Create a RootConfig instance that references |
309 |
@@ -132,7 +132,7 @@ class _frozen_depgraph_config(object): |
310 |
pkg_cache=self._pkg_cache, |
311 |
pkg_root_config=self.roots[myroot], |
312 |
dynamic_deps=dynamic_deps, |
313 |
- ignore_built_slot_abi_deps=ignore_built_slot_abi_deps) |
314 |
+ ignore_built_slot_operator_deps=ignore_built_slot_operator_deps) |
315 |
self.pkgsettings[myroot] = portage.config( |
316 |
clone=self.trees[myroot]["vartree"].settings) |
317 |
|
318 |
@@ -412,7 +412,7 @@ class _dynamic_depgraph_config(object): |
319 |
self._needed_license_changes = backtrack_parameters.needed_license_changes |
320 |
self._needed_use_config_changes = backtrack_parameters.needed_use_config_changes |
321 |
self._runtime_pkg_mask = backtrack_parameters.runtime_pkg_mask |
322 |
- self._slot_abi_replace_installed = backtrack_parameters.slot_abi_replace_installed |
323 |
+ self._slot_operator_replace_installed = backtrack_parameters.slot_operator_replace_installed |
324 |
self._need_restart = False |
325 |
# For conditions that always require user intervention, such as |
326 |
# unsatisfied REQUIRED_USE (currently has no autounmask support). |
327 |
@@ -423,7 +423,7 @@ class _dynamic_depgraph_config(object): |
328 |
self._success_without_autounmask = False |
329 |
self._traverse_ignored_deps = False |
330 |
self._complete_mode = False |
331 |
- self._slot_abi_deps = {} |
332 |
+ self._slot_operator_deps = {} |
333 |
|
334 |
for myroot in depgraph._frozen_config.trees: |
335 |
self.sets[myroot] = _depgraph_sets() |
336 |
@@ -956,7 +956,7 @@ class depgraph(object): |
337 |
|
338 |
def _slot_conflict_backtrack_abi(self, pkg, slot_nodes, conflict_atoms): |
339 |
""" |
340 |
- If one or more conflict atoms have a SLOT/ABI dep that can be resolved |
341 |
+ If one or more conflict atoms have a slot/sub-slot dep that can be resolved |
342 |
by rebuilding the parent package, then schedule the rebuild via |
343 |
backtracking, and return True. Otherwise, return False. |
344 |
""" |
345 |
@@ -964,7 +964,7 @@ class depgraph(object): |
346 |
found_update = False |
347 |
for parent_atom, conflict_pkgs in conflict_atoms.items(): |
348 |
parent, atom = parent_atom |
349 |
- if atom.slot_abi_op != "=" or not parent.built: |
350 |
+ if atom.slot_operator != "=" or not parent.built: |
351 |
continue |
352 |
|
353 |
if pkg not in conflict_pkgs: |
354 |
@@ -977,13 +977,13 @@ class depgraph(object): |
355 |
dep = Dependency(atom=atom, child=other_pkg, |
356 |
parent=parent, root=pkg.root) |
357 |
|
358 |
- if self._slot_abi_update_probe(dep): |
359 |
- self._slot_abi_update_backtrack(dep) |
360 |
+ if self._slot_operator_update_probe(dep): |
361 |
+ self._slot_operator_update_backtrack(dep) |
362 |
found_update = True |
363 |
|
364 |
return found_update |
365 |
|
366 |
- def _slot_abi_update_backtrack(self, dep, new_child_slot=None): |
367 |
+ def _slot_operator_update_backtrack(self, dep, new_child_slot=None): |
368 |
if new_child_slot is None: |
369 |
child = dep.child |
370 |
else: |
371 |
@@ -1008,11 +1008,11 @@ class depgraph(object): |
372 |
abi_masks = {} |
373 |
if new_child_slot is None: |
374 |
if not child.installed: |
375 |
- abi_masks.setdefault(child, {})["slot_abi_mask_built"] = None |
376 |
+ abi_masks.setdefault(child, {})["slot_operator_mask_built"] = None |
377 |
if not dep.parent.installed: |
378 |
- abi_masks.setdefault(dep.parent, {})["slot_abi_mask_built"] = None |
379 |
+ abi_masks.setdefault(dep.parent, {})["slot_operator_mask_built"] = None |
380 |
if abi_masks: |
381 |
- config.setdefault("slot_abi_mask_built", {}).update(abi_masks) |
382 |
+ config.setdefault("slot_operator_mask_built", {}).update(abi_masks) |
383 |
|
384 |
# trigger replacement of installed packages if necessary |
385 |
abi_reinstalls = set() |
386 |
@@ -1021,15 +1021,15 @@ class depgraph(object): |
387 |
if new_child_slot is None and child.installed: |
388 |
abi_reinstalls.add((child.root, child.slot_atom)) |
389 |
if abi_reinstalls: |
390 |
- config.setdefault("slot_abi_replace_installed", |
391 |
+ config.setdefault("slot_operator_replace_installed", |
392 |
set()).update(abi_reinstalls) |
393 |
|
394 |
self._dynamic_config._need_restart = True |
395 |
|
396 |
- def _slot_abi_update_probe(self, dep, new_child_slot=False): |
397 |
+ def _slot_operator_update_probe(self, dep, new_child_slot=False): |
398 |
""" |
399 |
- SLOT/ABI := operators tend to prevent updates from getting pulled in, |
400 |
- since installed packages pull in packages with the SLOT/ABI that they |
401 |
+ slot/sub-slot := operators tend to prevent updates from getting pulled in, |
402 |
+ since installed packages pull in packages with the slot/sub-slot that they |
403 |
were built against. Detect this case so that we can schedule rebuilds |
404 |
and reinstalls when appropriate. |
405 |
NOTE: This function only searches for updates that involve upgrades |
406 |
@@ -1054,7 +1054,7 @@ class depgraph(object): |
407 |
dep.parent.slot_atom): |
408 |
|
409 |
for atom in replacement_parent.validated_atoms: |
410 |
- if not atom.slot_abi_op == "=" or \ |
411 |
+ if not atom.slot_operator == "=" or \ |
412 |
atom.blocker or \ |
413 |
atom.cp != dep.atom.cp: |
414 |
continue |
415 |
@@ -1074,8 +1074,8 @@ class depgraph(object): |
416 |
for pkg in self._iter_similar_available( |
417 |
dep.child, atom): |
418 |
if pkg.slot == dep.child.slot and \ |
419 |
- pkg.slot_abi == dep.child.slot_abi: |
420 |
- # If SLOT/ABI is identical, then there's |
421 |
+ pkg.sub_slot == dep.child.sub_slot: |
422 |
+ # If slot/sub-slot is identical, then there's |
423 |
# no point in updating. |
424 |
continue |
425 |
if new_child_slot: |
426 |
@@ -1093,7 +1093,7 @@ class depgraph(object): |
427 |
want_downgrade = self._downgrade_probe(dep.child) |
428 |
# be careful not to trigger a rebuild when |
429 |
# the only version available with a |
430 |
- # different slot_abi is an older version |
431 |
+ # different slot_operator is an older version |
432 |
if not want_downgrade: |
433 |
continue |
434 |
|
435 |
@@ -1101,7 +1101,7 @@ class depgraph(object): |
436 |
msg = [] |
437 |
msg.append("") |
438 |
msg.append("") |
439 |
- msg.append("slot_abi_update_probe:") |
440 |
+ msg.append("slot_operator_update_probe:") |
441 |
msg.append(" existing child package: %s" % dep.child) |
442 |
msg.append(" existing parent package: %s" % dep.parent) |
443 |
msg.append(" new child package: %s" % pkg) |
444 |
@@ -1116,7 +1116,7 @@ class depgraph(object): |
445 |
msg = [] |
446 |
msg.append("") |
447 |
msg.append("") |
448 |
- msg.append("slot_abi_update_probe:") |
449 |
+ msg.append("slot_operator_update_probe:") |
450 |
msg.append(" existing child package: %s" % dep.child) |
451 |
msg.append(" existing parent package: %s" % dep.parent) |
452 |
msg.append(" new child package: %s" % None) |
453 |
@@ -1178,16 +1178,16 @@ class depgraph(object): |
454 |
continue |
455 |
yield pkg |
456 |
|
457 |
- def _slot_abi_trigger_reinstalls(self): |
458 |
+ def _slot_operator_trigger_reinstalls(self): |
459 |
""" |
460 |
- Search for packages with slot-abi deps on older slots, and schedule |
461 |
+ Search for packages with slot-operator deps on older slots, and schedule |
462 |
rebuilds if they can link to a newer slot that's in the graph. |
463 |
""" |
464 |
|
465 |
- rebuild_if_new_slot_abi = self._dynamic_config.myparams.get( |
466 |
- "rebuild_if_new_slot_abi", "y") == "y" |
467 |
+ rebuild_if_new_slot = self._dynamic_config.myparams.get( |
468 |
+ "rebuild_if_new_slot", "y") == "y" |
469 |
|
470 |
- for slot_key, slot_info in self._dynamic_config._slot_abi_deps.items(): |
471 |
+ for slot_key, slot_info in self._dynamic_config._slot_operator_deps.items(): |
472 |
|
473 |
for dep in slot_info: |
474 |
if not (dep.child.built and dep.parent and |
475 |
@@ -1197,17 +1197,17 @@ class depgraph(object): |
476 |
# Check for slot update first, since we don't want to |
477 |
# trigger reinstall of the child package when a newer |
478 |
# slot will be used instead. |
479 |
- if rebuild_if_new_slot_abi: |
480 |
- new_child = self._slot_abi_update_probe(dep, |
481 |
+ if rebuild_if_new_slot: |
482 |
+ new_child = self._slot_operator_update_probe(dep, |
483 |
new_child_slot=True) |
484 |
if new_child: |
485 |
- self._slot_abi_update_backtrack(dep, |
486 |
+ self._slot_operator_update_backtrack(dep, |
487 |
new_child_slot=new_child) |
488 |
break |
489 |
|
490 |
if dep.want_update: |
491 |
- if self._slot_abi_update_probe(dep): |
492 |
- self._slot_abi_update_backtrack(dep) |
493 |
+ if self._slot_operator_update_probe(dep): |
494 |
+ self._slot_operator_update_backtrack(dep) |
495 |
break |
496 |
|
497 |
def _reinstall_for_flags(self, pkg, forced_flags, |
498 |
@@ -1614,8 +1614,8 @@ class depgraph(object): |
499 |
|
500 |
dep.child = pkg |
501 |
if (not pkg.onlydeps and pkg.built and |
502 |
- dep.atom and dep.atom.slot_abi_built): |
503 |
- self._add_slot_abi_dep(dep) |
504 |
+ dep.atom and dep.atom.slot_operator_built): |
505 |
+ self._add_slot_operator_dep(dep) |
506 |
|
507 |
recurse = deep is True or depth + 1 <= deep |
508 |
dep_stack = self._dynamic_config._dep_stack |
509 |
@@ -1648,12 +1648,12 @@ class depgraph(object): |
510 |
self._dynamic_config._parent_atoms[pkg] = parent_atoms |
511 |
parent_atoms.add(parent_atom) |
512 |
|
513 |
- def _add_slot_abi_dep(self, dep): |
514 |
+ def _add_slot_operator_dep(self, dep): |
515 |
slot_key = (dep.root, dep.child.slot_atom) |
516 |
- slot_info = self._dynamic_config._slot_abi_deps.get(slot_key) |
517 |
+ slot_info = self._dynamic_config._slot_operator_deps.get(slot_key) |
518 |
if slot_info is None: |
519 |
slot_info = [] |
520 |
- self._dynamic_config._slot_abi_deps[slot_key] = slot_info |
521 |
+ self._dynamic_config._slot_operator_deps[slot_key] = slot_info |
522 |
slot_info.append(dep) |
523 |
|
524 |
def _add_slot_conflict(self, pkg): |
525 |
@@ -2106,12 +2106,12 @@ class depgraph(object): |
526 |
# Yield ~, =*, < and <= atoms first, since those are more likely to |
527 |
# cause slot conflicts, and we want those atoms to be displayed |
528 |
# in the resulting slot conflict message (see bug #291142). |
529 |
- # Give similar treatment to SLOT/ABI atoms. |
530 |
+ # Give similar treatment to slot/sub-slot atoms. |
531 |
conflict_atoms = [] |
532 |
normal_atoms = [] |
533 |
abi_atoms = [] |
534 |
for atom in cp_atoms: |
535 |
- if atom.slot_abi_built: |
536 |
+ if atom.slot_operator_built: |
537 |
abi_atoms.append(atom) |
538 |
continue |
539 |
conflict = False |
540 |
@@ -2553,8 +2553,8 @@ class depgraph(object): |
541 |
atom_list.append((root, '__auto_rebuild__', atom)) |
542 |
for root, atom in self._rebuild.reinstall_list: |
543 |
atom_list.append((root, '__auto_reinstall__', atom)) |
544 |
- for root, atom in self._dynamic_config._slot_abi_replace_installed: |
545 |
- atom_list.append((root, '__auto_slot_abi_replace_installed__', atom)) |
546 |
+ for root, atom in self._dynamic_config._slot_operator_replace_installed: |
547 |
+ atom_list.append((root, '__auto_slot_operator_replace_installed__', atom)) |
548 |
|
549 |
set_dict = {} |
550 |
for root, set_name, atom in atom_list: |
551 |
@@ -2708,8 +2708,8 @@ class depgraph(object): |
552 |
return False, myfavorites |
553 |
|
554 |
if "config" in self._dynamic_config._backtrack_infos and \ |
555 |
- ("slot_abi_mask_built" in self._dynamic_config._backtrack_infos["config"] or |
556 |
- "slot_abi_replace_installed" in self._dynamic_config._backtrack_infos["config"]) and \ |
557 |
+ ("slot_operator_mask_built" in self._dynamic_config._backtrack_infos["config"] or |
558 |
+ "slot_operator_replace_installed" in self._dynamic_config._backtrack_infos["config"]) and \ |
559 |
self.need_restart(): |
560 |
return False, myfavorites |
561 |
|
562 |
@@ -2899,9 +2899,9 @@ class depgraph(object): |
563 |
is_valid_flag=is_valid_flag, eapi=eapi) |
564 |
|
565 |
if (self._dynamic_config.myparams.get( |
566 |
- "ignore_built_slot_abi_deps", "n") == "y" and |
567 |
+ "ignore_built_slot_operator_deps", "n") == "y" and |
568 |
parent and parent.built): |
569 |
- ignore_built_slot_abi_deps(depstring) |
570 |
+ ignore_built_slot_operator_deps(depstring) |
571 |
|
572 |
pkgsettings = self._frozen_config.pkgsettings[root] |
573 |
if trees is None: |
574 |
@@ -4660,9 +4660,9 @@ class depgraph(object): |
575 |
"complete_if_new_use", "y") == "y" |
576 |
complete_if_new_ver = self._dynamic_config.myparams.get( |
577 |
"complete_if_new_ver", "y") == "y" |
578 |
- rebuild_if_new_slot_abi = self._dynamic_config.myparams.get( |
579 |
- "rebuild_if_new_slot_abi", "y") == "y" |
580 |
- complete_if_new_slot = rebuild_if_new_slot_abi |
581 |
+ rebuild_if_new_slot = self._dynamic_config.myparams.get( |
582 |
+ "rebuild_if_new_slot", "y") == "y" |
583 |
+ complete_if_new_slot = rebuild_if_new_slot |
584 |
|
585 |
if "complete" not in self._dynamic_config.myparams and \ |
586 |
(complete_if_new_use or |
587 |
@@ -5346,7 +5346,7 @@ class depgraph(object): |
588 |
|
589 |
self._process_slot_conflicts() |
590 |
|
591 |
- self._slot_abi_trigger_reinstalls() |
592 |
+ self._slot_operator_trigger_reinstalls() |
593 |
|
594 |
if not self._validate_blockers(): |
595 |
self._dynamic_config._skip_restart = True |
596 |
|
597 |
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py |
598 |
index d4b2901..049c3ec 100644 |
599 |
--- a/pym/_emerge/main.py |
600 |
+++ b/pym/_emerge/main.py |
601 |
@@ -478,7 +478,7 @@ def insert_optional_args(args): |
602 |
'--package-moves' : y_or_n, |
603 |
'--quiet' : y_or_n, |
604 |
'--quiet-build' : y_or_n, |
605 |
- '--rebuild-if-new-slot-abi': y_or_n, |
606 |
+ '--rebuild-if-new-slot': y_or_n, |
607 |
'--rebuild-if-new-rev' : y_or_n, |
608 |
'--rebuild-if-new-ver' : y_or_n, |
609 |
'--rebuild-if-unbuilt' : y_or_n, |
610 |
@@ -754,11 +754,11 @@ def parse_opts(tmpcmdline, silent=False): |
611 |
"choices" : true_y_or_n |
612 |
}, |
613 |
|
614 |
- "--ignore-built-slot-abi-deps": { |
615 |
- "help": "Ignore the SLOT/ABI := operator parts of dependencies that have " |
616 |
+ "--ignore-built-slot-operator-deps": { |
617 |
+ "help": "Ignore the slot/sub-slot := operator parts of dependencies that have " |
618 |
"been recorded when packages where built. This option is intended " |
619 |
"only for debugging purposes, and it only affects built packages " |
620 |
- "that specify SLOT/ABI := operator dependencies using the " |
621 |
+ "that specify slot/sub-slot := operator dependencies using the " |
622 |
"experimental \"4-slot-abi\" EAPI.", |
623 |
"type": "choice", |
624 |
"choices": y_or_n |
625 |
@@ -877,8 +877,8 @@ def parse_opts(tmpcmdline, silent=False): |
626 |
"choices" : true_y_or_n, |
627 |
}, |
628 |
|
629 |
- "--rebuild-if-new-slot-abi": { |
630 |
- "help" : ("Automatically rebuild or reinstall packages when SLOT/ABI := " |
631 |
+ "--rebuild-if-new-slot": { |
632 |
+ "help" : ("Automatically rebuild or reinstall packages when slot/sub-slot := " |
633 |
"operator dependencies can be satisfied by a newer slot, so that " |
634 |
"older packages slots will become eligible for removal by the " |
635 |
"--depclean action as soon as possible."), |
636 |
@@ -1127,8 +1127,8 @@ def parse_opts(tmpcmdline, silent=False): |
637 |
if myoptions.quiet_build in true_y: |
638 |
myoptions.quiet_build = 'y' |
639 |
|
640 |
- if myoptions.rebuild_if_new_slot_abi in true_y: |
641 |
- myoptions.rebuild_if_new_slot_abi = 'y' |
642 |
+ if myoptions.rebuild_if_new_slot in true_y: |
643 |
+ myoptions.rebuild_if_new_slot = 'y' |
644 |
|
645 |
if myoptions.rebuild_if_new_ver in true_y: |
646 |
myoptions.rebuild_if_new_ver = True |
647 |
|
648 |
diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py |
649 |
index d8f49c6..5456ea4 100644 |
650 |
--- a/pym/_emerge/resolver/backtracking.py |
651 |
+++ b/pym/_emerge/resolver/backtracking.py |
652 |
@@ -8,7 +8,7 @@ class BacktrackParameter(object): |
653 |
__slots__ = ( |
654 |
"needed_unstable_keywords", "runtime_pkg_mask", "needed_use_config_changes", "needed_license_changes", |
655 |
"rebuild_list", "reinstall_list", "needed_p_mask_changes", |
656 |
- "slot_abi_replace_installed" |
657 |
+ "slot_operator_replace_installed" |
658 |
) |
659 |
|
660 |
def __init__(self): |
661 |
@@ -19,7 +19,7 @@ class BacktrackParameter(object): |
662 |
self.needed_license_changes = {} |
663 |
self.rebuild_list = set() |
664 |
self.reinstall_list = set() |
665 |
- self.slot_abi_replace_installed = set() |
666 |
+ self.slot_operator_replace_installed = set() |
667 |
|
668 |
def __deepcopy__(self, memo=None): |
669 |
if memo is None: |
670 |
@@ -35,7 +35,7 @@ class BacktrackParameter(object): |
671 |
result.needed_license_changes = copy.copy(self.needed_license_changes) |
672 |
result.rebuild_list = copy.copy(self.rebuild_list) |
673 |
result.reinstall_list = copy.copy(self.reinstall_list) |
674 |
- result.slot_abi_replace_installed = copy.copy(self.slot_abi_replace_installed) |
675 |
+ result.slot_operator_replace_installed = copy.copy(self.slot_operator_replace_installed) |
676 |
|
677 |
# runtime_pkg_mask contains nested dicts that must also be copied |
678 |
result.runtime_pkg_mask = {} |
679 |
@@ -52,7 +52,7 @@ class BacktrackParameter(object): |
680 |
self.needed_license_changes == other.needed_license_changes and \ |
681 |
self.rebuild_list == other.rebuild_list and \ |
682 |
self.reinstall_list == other.reinstall_list and \ |
683 |
- self.slot_abi_replace_installed == other.slot_abi_replace_installed |
684 |
+ self.slot_operator_replace_installed == other.slot_operator_replace_installed |
685 |
|
686 |
|
687 |
class _BacktrackNode(object): |
688 |
@@ -125,7 +125,7 @@ class Backtracker(object): |
689 |
for pkg, mask_info in runtime_pkg_mask.items(): |
690 |
|
691 |
if "missing dependency" in mask_info or \ |
692 |
- "slot_abi_mask_built" in mask_info: |
693 |
+ "slot_operator_mask_built" in mask_info: |
694 |
continue |
695 |
|
696 |
entry_is_valid = False |
697 |
@@ -192,12 +192,12 @@ class Backtracker(object): |
698 |
para.needed_use_config_changes[pkg] = (new_use, new_changes) |
699 |
elif change == "slot_conflict_abi": |
700 |
new_node.terminal = False |
701 |
- elif change == "slot_abi_mask_built": |
702 |
+ elif change == "slot_operator_mask_built": |
703 |
for pkg, mask_reasons in data.items(): |
704 |
para.runtime_pkg_mask.setdefault(pkg, |
705 |
{}).update(mask_reasons) |
706 |
- elif change == "slot_abi_replace_installed": |
707 |
- para.slot_abi_replace_installed.update(data) |
708 |
+ elif change == "slot_operator_replace_installed": |
709 |
+ para.slot_operator_replace_installed.update(data) |
710 |
elif change == "rebuild_list": |
711 |
para.rebuild_list.update(data) |
712 |
elif change == "reinstall_list": |
713 |
|
714 |
diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py |
715 |
index 783a648..bc95e91 100644 |
716 |
--- a/pym/_emerge/resolver/slot_collision.py |
717 |
+++ b/pym/_emerge/resolver/slot_collision.py |
718 |
@@ -291,8 +291,8 @@ class slot_conflict_handler(object): |
719 |
num_all_specific_atoms += 1 |
720 |
collision_reasons[key] = atoms |
721 |
else: |
722 |
- # The slot_abi does not match. |
723 |
- key = ("sub-slot", atom.slot_abi) |
724 |
+ # The sub_slot does not match. |
725 |
+ key = ("sub-slot", atom.sub_slot) |
726 |
atoms = collision_reasons.get(key, set()) |
727 |
atoms.add((ppkg, atom, other_pkg)) |
728 |
num_all_specific_atoms += 1 |
729 |
|
730 |
diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py |
731 |
index f326e68..dc0a3da 100644 |
732 |
--- a/pym/portage/dbapi/__init__.py |
733 |
+++ b/pym/portage/dbapi/__init__.py |
734 |
@@ -348,9 +348,9 @@ class dbapi(object): |
735 |
continue |
736 |
moves += 1 |
737 |
if "/" not in newslot and \ |
738 |
- mycpv.slot_abi and \ |
739 |
- mycpv.slot_abi not in (mycpv.slot, newslot): |
740 |
- newslot = "%s/%s" % (newslot, mycpv.slot_abi) |
741 |
+ mycpv.sub_slot and \ |
742 |
+ mycpv.sub_slot not in (mycpv.slot, newslot): |
743 |
+ newslot = "%s/%s" % (newslot, mycpv.sub_slot) |
744 |
mydata = {"SLOT": newslot+"\n"} |
745 |
self.aux_update(mycpv, mydata) |
746 |
return moves |
747 |
|
748 |
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py |
749 |
index b7bb46f..4d85f94 100644 |
750 |
--- a/pym/portage/dep/__init__.py |
751 |
+++ b/pym/portage/dep/__init__.py |
752 |
@@ -62,12 +62,12 @@ _extended_cat = r'[\w+*][\w+.*-]*' |
753 |
_slot_re_cache = {} |
754 |
|
755 |
def _get_slot_re(eapi_attrs): |
756 |
- cache_key = eapi_attrs.slot_abi |
757 |
+ cache_key = eapi_attrs.slot_operator |
758 |
slot_re = _slot_re_cache.get(cache_key) |
759 |
if slot_re is not None: |
760 |
return slot_re |
761 |
|
762 |
- if eapi_attrs.slot_abi: |
763 |
+ if eapi_attrs.slot_operator: |
764 |
slot_re = _slot + r'(/' + _slot + r'=?)?' |
765 |
else: |
766 |
slot_re = _slot |
767 |
@@ -80,12 +80,12 @@ def _get_slot_re(eapi_attrs): |
768 |
_slot_dep_re_cache = {} |
769 |
|
770 |
def _get_slot_dep_re(eapi_attrs): |
771 |
- cache_key = eapi_attrs.slot_abi |
772 |
+ cache_key = eapi_attrs.slot_operator |
773 |
slot_re = _slot_dep_re_cache.get(cache_key) |
774 |
if slot_re is not None: |
775 |
return slot_re |
776 |
|
777 |
- if eapi_attrs.slot_abi: |
778 |
+ if eapi_attrs.slot_operator: |
779 |
slot_re = _slot + r'?(\*|=|/' + _slot + r'=?)?' |
780 |
else: |
781 |
slot_re = _slot |
782 |
@@ -97,9 +97,9 @@ def _get_slot_dep_re(eapi_attrs): |
783 |
|
784 |
def _match_slot(atom, pkg): |
785 |
if pkg.slot == atom.slot: |
786 |
- if not atom.slot_abi: |
787 |
+ if not atom.sub_slot: |
788 |
return True |
789 |
- elif atom.slot_abi == pkg.slot_abi: |
790 |
+ elif atom.sub_slot == pkg.sub_slot: |
791 |
return True |
792 |
return False |
793 |
|
794 |
@@ -1311,32 +1311,32 @@ class Atom(_unicode): |
795 |
self.__dict__['repo'] = repo |
796 |
if slot is None: |
797 |
self.__dict__['slot'] = None |
798 |
- self.__dict__['slot_abi'] = None |
799 |
- self.__dict__['slot_abi_op'] = None |
800 |
+ self.__dict__['sub_slot'] = None |
801 |
+ self.__dict__['slot_operator'] = None |
802 |
else: |
803 |
slot_re = _get_slot_dep_re(eapi_attrs) |
804 |
slot_match = slot_re.match(slot) |
805 |
if slot_match is None: |
806 |
raise InvalidAtom(self) |
807 |
- if eapi_attrs.slot_abi: |
808 |
+ if eapi_attrs.slot_operator: |
809 |
self.__dict__['slot'] = slot_match.group(1) |
810 |
- slot_abi = slot_match.group(2) |
811 |
- if slot_abi is not None: |
812 |
- slot_abi = slot_abi.lstrip("/") |
813 |
- if slot_abi in ("*", "="): |
814 |
- self.__dict__['slot_abi'] = None |
815 |
- self.__dict__['slot_abi_op'] = slot_abi |
816 |
+ sub_slot = slot_match.group(2) |
817 |
+ if sub_slot is not None: |
818 |
+ sub_slot = sub_slot.lstrip("/") |
819 |
+ if sub_slot in ("*", "="): |
820 |
+ self.__dict__['sub_slot'] = None |
821 |
+ self.__dict__['slot_operator'] = sub_slot |
822 |
else: |
823 |
- slot_abi_op = None |
824 |
- if slot_abi is not None and slot_abi[-1:] == "=": |
825 |
- slot_abi_op = slot_abi[-1:] |
826 |
- slot_abi = slot_abi[:-1] |
827 |
- self.__dict__['slot_abi'] = slot_abi |
828 |
- self.__dict__['slot_abi_op'] = slot_abi_op |
829 |
+ slot_operator = None |
830 |
+ if sub_slot is not None and sub_slot[-1:] == "=": |
831 |
+ slot_operator = sub_slot[-1:] |
832 |
+ sub_slot = sub_slot[:-1] |
833 |
+ self.__dict__['sub_slot'] = sub_slot |
834 |
+ self.__dict__['slot_operator'] = slot_operator |
835 |
else: |
836 |
self.__dict__['slot'] = slot |
837 |
- self.__dict__['slot_abi'] = None |
838 |
- self.__dict__['slot_abi_op'] = None |
839 |
+ self.__dict__['sub_slot'] = None |
840 |
+ self.__dict__['slot_operator'] = None |
841 |
self.__dict__['operator'] = op |
842 |
self.__dict__['extended_syntax'] = extended_syntax |
843 |
|
844 |
@@ -1410,13 +1410,13 @@ class Atom(_unicode): |
845 |
% (eapi, self), category='EAPI.incompatible') |
846 |
|
847 |
@property |
848 |
- def slot_abi_built(self): |
849 |
+ def slot_operator_built(self): |
850 |
""" |
851 |
- Returns True if slot_abi_op == "=" and slot_abi is not None. |
852 |
+ Returns True if slot_operator == "=" and sub_slot is not None. |
853 |
NOTE: foo/bar:2= is unbuilt and returns False, whereas foo/bar:2/2= |
854 |
is built and returns True. |
855 |
""" |
856 |
- return self.slot_abi_op == "=" and self.slot_abi is not None |
857 |
+ return self.slot_operator == "=" and self.sub_slot is not None |
858 |
|
859 |
@property |
860 |
def without_repo(self): |
861 |
@@ -1427,7 +1427,7 @@ class Atom(_unicode): |
862 |
|
863 |
@property |
864 |
def without_slot(self): |
865 |
- if self.slot is None and self.slot_abi_op is None: |
866 |
+ if self.slot is None and self.slot_operator is None: |
867 |
return self |
868 |
atom = remove_slot(self) |
869 |
if self.repo is not None: |
870 |
@@ -1439,14 +1439,14 @@ class Atom(_unicode): |
871 |
|
872 |
def with_repo(self, repo): |
873 |
atom = remove_slot(self) |
874 |
- if self.slot is not None or self.slot_abi_op is not None: |
875 |
+ if self.slot is not None or self.slot_operator is not None: |
876 |
atom += _slot_separator |
877 |
if self.slot is not None: |
878 |
atom += self.slot |
879 |
- if self.slot_abi is not None: |
880 |
- atom += "/%s" % self.slot_abi |
881 |
- if self.slot_abi_op is not None: |
882 |
- atom += self.slot_abi_op |
883 |
+ if self.sub_slot is not None: |
884 |
+ atom += "/%s" % self.sub_slot |
885 |
+ if self.slot_operator is not None: |
886 |
+ atom += self.slot_operator |
887 |
atom += _repo_separator + repo |
888 |
if self.use is not None: |
889 |
atom += _unicode(self.use) |
890 |
@@ -1506,14 +1506,14 @@ class Atom(_unicode): |
891 |
if not (self.use and self.use.conditional): |
892 |
return self |
893 |
atom = remove_slot(self) |
894 |
- if self.slot is not None or self.slot_abi_op is not None: |
895 |
+ if self.slot is not None or self.slot_operator is not None: |
896 |
atom += _slot_separator |
897 |
if self.slot is not None: |
898 |
atom += self.slot |
899 |
- if self.slot_abi is not None: |
900 |
- atom += "/%s" % self.slot_abi |
901 |
- if self.slot_abi_op is not None: |
902 |
- atom += self.slot_abi_op |
903 |
+ if self.sub_slot is not None: |
904 |
+ atom += "/%s" % self.sub_slot |
905 |
+ if self.slot_operator is not None: |
906 |
+ atom += self.slot_operator |
907 |
use_dep = self.use.evaluate_conditionals(use) |
908 |
atom += _unicode(use_dep) |
909 |
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) |
910 |
@@ -1534,14 +1534,14 @@ class Atom(_unicode): |
911 |
if not self.use: |
912 |
return self |
913 |
atom = remove_slot(self) |
914 |
- if self.slot is not None or self.slot_abi_op is not None: |
915 |
+ if self.slot is not None or self.slot_operator is not None: |
916 |
atom += _slot_separator |
917 |
if self.slot is not None: |
918 |
atom += self.slot |
919 |
- if self.slot_abi is not None: |
920 |
- atom += "/%s" % self.slot_abi |
921 |
- if self.slot_abi_op is not None: |
922 |
- atom += self.slot_abi_op |
923 |
+ if self.sub_slot is not None: |
924 |
+ atom += "/%s" % self.sub_slot |
925 |
+ if self.slot_operator is not None: |
926 |
+ atom += self.slot_operator |
927 |
use_dep = self.use.violated_conditionals(other_use, is_valid_flag, parent_use) |
928 |
atom += _unicode(use_dep) |
929 |
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) |
930 |
@@ -1550,14 +1550,14 @@ class Atom(_unicode): |
931 |
if not (self.use and self.use.conditional): |
932 |
return self |
933 |
atom = remove_slot(self) |
934 |
- if self.slot is not None or self.slot_abi_op is not None: |
935 |
+ if self.slot is not None or self.slot_operator is not None: |
936 |
atom += _slot_separator |
937 |
if self.slot is not None: |
938 |
atom += self.slot |
939 |
- if self.slot_abi is not None: |
940 |
- atom += "/%s" % self.slot_abi |
941 |
- if self.slot_abi_op is not None: |
942 |
- atom += self.slot_abi_op |
943 |
+ if self.sub_slot is not None: |
944 |
+ atom += "/%s" % self.sub_slot |
945 |
+ if self.slot_operator is not None: |
946 |
+ atom += self.slot_operator |
947 |
use_dep = self.use._eval_qa_conditionals(use_mask, use_force) |
948 |
atom += _unicode(use_dep) |
949 |
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) |
950 |
|
951 |
diff --git a/pym/portage/dep/_slot_abi.py b/pym/portage/dep/_slot_abi.py |
952 |
index 7c36e52..8a2b774 100644 |
953 |
--- a/pym/portage/dep/_slot_abi.py |
954 |
+++ b/pym/portage/dep/_slot_abi.py |
955 |
@@ -7,35 +7,35 @@ from portage.exception import InvalidData |
956 |
_dep_keys = ('DEPEND', 'PDEPEND', 'RDEPEND') |
957 |
_runtime_keys = ('PDEPEND', 'RDEPEND') |
958 |
|
959 |
-def find_built_slot_abi_atoms(pkg): |
960 |
+def find_built_slot_operator_atoms(pkg): |
961 |
atoms = {} |
962 |
for k in _dep_keys: |
963 |
- atom_list = list(_find_built_slot_abi_op(use_reduce(pkg.metadata[k], |
964 |
+ atom_list = list(_find_built_slot_operator(use_reduce(pkg.metadata[k], |
965 |
uselist=pkg.use.enabled, eapi=pkg.metadata['EAPI'], |
966 |
token_class=Atom))) |
967 |
if atom_list: |
968 |
atoms[k] = atom_list |
969 |
return atoms |
970 |
|
971 |
-def _find_built_slot_abi_op(dep_struct): |
972 |
+def _find_built_slot_operator(dep_struct): |
973 |
for x in dep_struct: |
974 |
if isinstance(x, list): |
975 |
- for atom in _find_built_slot_abi_op(x): |
976 |
+ for atom in _find_built_slot_operator(x): |
977 |
yield atom |
978 |
- elif isinstance(x, Atom) and x.slot_abi_built: |
979 |
+ elif isinstance(x, Atom) and x.slot_operator_built: |
980 |
yield x |
981 |
|
982 |
-def ignore_built_slot_abi_deps(dep_struct): |
983 |
+def ignore_built_slot_operator_deps(dep_struct): |
984 |
for i, x in enumerate(dep_struct): |
985 |
if isinstance(x, list): |
986 |
- ignore_built_slot_abi_deps(x) |
987 |
- elif isinstance(x, Atom) and x.slot_abi_built: |
988 |
+ ignore_built_slot_operator_deps(x) |
989 |
+ elif isinstance(x, Atom) and x.slot_operator_built: |
990 |
# There's no way of knowing here whether the SLOT |
991 |
- # part of the SLOT/ABI pair should be kept, so we |
992 |
+ # part of the slot/sub-slot pair should be kept, so we |
993 |
# ignore both parts. |
994 |
dep_struct[i] = x.without_slot |
995 |
|
996 |
-def evaluate_slot_abi_equal_deps(settings, use, trees): |
997 |
+def evaluate_slot_operator_equal_deps(settings, use, trees): |
998 |
|
999 |
metadata = settings.configdict['pkg'] |
1000 |
eapi = metadata['EAPI'] |
1001 |
@@ -65,7 +65,7 @@ def _eval_deps(dep_struct, vardbs): |
1002 |
for i, x in enumerate(dep_struct): |
1003 |
if isinstance(x, list): |
1004 |
_eval_deps(x, vardbs) |
1005 |
- elif isinstance(x, Atom) and x.slot_abi_op == "=": |
1006 |
+ elif isinstance(x, Atom) and x.slot_operator == "=": |
1007 |
for vardb in vardbs: |
1008 |
best_version = vardb.match(x) |
1009 |
if best_version: |
1010 |
@@ -77,7 +77,7 @@ def _eval_deps(dep_struct, vardbs): |
1011 |
pass |
1012 |
else: |
1013 |
slot_part = "%s/%s=" % \ |
1014 |
- (best_version.slot, best_version.slot_abi) |
1015 |
+ (best_version.slot, best_version.sub_slot) |
1016 |
x = x.with_slot(slot_part) |
1017 |
dep_struct[i] = x |
1018 |
break |
1019 |
|
1020 |
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py |
1021 |
index 1d8da39..f13e791 100644 |
1022 |
--- a/pym/portage/eapi.py |
1023 |
+++ b/pym/portage/eapi.py |
1024 |
@@ -14,7 +14,7 @@ def eapi_has_iuse_effective(eapi): |
1025 |
def eapi_has_slot_deps(eapi): |
1026 |
return eapi != "0" |
1027 |
|
1028 |
-def eapi_has_slot_abi(eapi): |
1029 |
+def eapi_has_slot_operator(eapi): |
1030 |
return eapi in ("4-slot-abi",) |
1031 |
|
1032 |
def eapi_has_src_uri_arrows(eapi): |
1033 |
@@ -80,7 +80,7 @@ def eapi_allows_dots_in_use_flags(eapi): |
1034 |
_eapi_attrs = collections.namedtuple('_eapi_attrs', |
1035 |
'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC ' |
1036 |
'iuse_defaults iuse_effective ' |
1037 |
- 'repo_deps required_use required_use_at_most_one_of slot_abi slot_deps ' |
1038 |
+ 'repo_deps required_use required_use_at_most_one_of slot_operator slot_deps ' |
1039 |
'src_uri_arrows strong_blocks use_deps use_dep_defaults') |
1040 |
|
1041 |
_eapi_attrs_cache = {} |
1042 |
@@ -111,7 +111,7 @@ def _get_eapi_attrs(eapi): |
1043 |
required_use = (eapi is None or eapi_has_required_use(eapi)), |
1044 |
required_use_at_most_one_of = (eapi is None or eapi_has_required_use_at_most_one_of(eapi)), |
1045 |
slot_deps = (eapi is None or eapi_has_slot_deps(eapi)), |
1046 |
- slot_abi = (eapi is None or eapi_has_slot_abi(eapi)), |
1047 |
+ slot_operator = (eapi is None or eapi_has_slot_operator(eapi)), |
1048 |
src_uri_arrows = (eapi is None or eapi_has_src_uri_arrows(eapi)), |
1049 |
strong_blocks = (eapi is None or eapi_has_strong_blocks(eapi)), |
1050 |
use_deps = (eapi is None or eapi_has_use_deps(eapi)), |
1051 |
|
1052 |
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py |
1053 |
index 5856f69..4c0c45d 100644 |
1054 |
--- a/pym/portage/package/ebuild/doebuild.py |
1055 |
+++ b/pym/portage/package/ebuild/doebuild.py |
1056 |
@@ -26,7 +26,7 @@ portage.proxy.lazyimport.lazyimport(globals(), |
1057 |
'portage.package.ebuild.digestgen:digestgen', |
1058 |
'portage.package.ebuild.fetch:fetch', |
1059 |
'portage.package.ebuild._ipc.QueryCommand:QueryCommand', |
1060 |
- 'portage.dep._slot_abi:evaluate_slot_abi_equal_deps', |
1061 |
+ 'portage.dep._slot_abi:evaluate_slot_operator_equal_deps', |
1062 |
'portage.package.ebuild._spawn_nofetch:spawn_nofetch', |
1063 |
'portage.util._desktop_entry:validate_desktop_entry', |
1064 |
'portage.util.ExtractKernelVersion:ExtractKernelVersion' |
1065 |
@@ -1691,7 +1691,7 @@ def _post_src_install_write_metadata(settings): |
1066 |
continue |
1067 |
|
1068 |
if k.endswith('DEPEND'): |
1069 |
- if eapi_attrs.slot_abi: |
1070 |
+ if eapi_attrs.slot_operator: |
1071 |
continue |
1072 |
token_class = Atom |
1073 |
else: |
1074 |
@@ -1711,8 +1711,8 @@ def _post_src_install_write_metadata(settings): |
1075 |
errors='strict') as f: |
1076 |
f.write(_unicode_decode(v + '\n')) |
1077 |
|
1078 |
- if eapi_attrs.slot_abi: |
1079 |
- deps = evaluate_slot_abi_equal_deps(settings, use, QueryCommand.get_db()) |
1080 |
+ if eapi_attrs.slot_operator: |
1081 |
+ deps = evaluate_slot_operator_equal_deps(settings, use, QueryCommand.get_db()) |
1082 |
for k, v in deps.items(): |
1083 |
filename = os.path.join(build_info_dir, k) |
1084 |
if not v: |
1085 |
|
1086 |
diff --git a/pym/portage/tests/dep/testAtom.py b/pym/portage/tests/dep/testAtom.py |
1087 |
index f5a7d37..0c72fd0 100644 |
1088 |
--- a/pym/portage/tests/dep/testAtom.py |
1089 |
+++ b/pym/portage/tests/dep/testAtom.py |
1090 |
@@ -150,14 +150,14 @@ class TestAtom(TestCase): |
1091 |
|
1092 |
def testSlotAbiAtom(self): |
1093 |
tests = ( |
1094 |
- ("virtual/ffmpeg:0/53", "4-slot-abi", {"slot": "0", "slot_abi": "53", "slot_abi_op": None}), |
1095 |
- ("virtual/ffmpeg:0/53=", "4-slot-abi", {"slot": "0", "slot_abi": "53", "slot_abi_op": "="}), |
1096 |
- ("virtual/ffmpeg:=", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": "="}), |
1097 |
- ("virtual/ffmpeg:0=", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": "="}), |
1098 |
- ("virtual/ffmpeg:*", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": "*"}), |
1099 |
- ("virtual/ffmpeg:0*", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": "*"}), |
1100 |
- ("virtual/ffmpeg:0", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": None}), |
1101 |
- ("virtual/ffmpeg", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": None}), |
1102 |
+ ("virtual/ffmpeg:0/53", "4-slot-abi", {"slot": "0", "sub_slot": "53", "slot_operator": None}), |
1103 |
+ ("virtual/ffmpeg:0/53=", "4-slot-abi", {"slot": "0", "sub_slot": "53", "slot_operator": "="}), |
1104 |
+ ("virtual/ffmpeg:=", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": "="}), |
1105 |
+ ("virtual/ffmpeg:0=", "4-slot-abi", {"slot": "0", "sub_slot": None, "slot_operator": "="}), |
1106 |
+ ("virtual/ffmpeg:*", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": "*"}), |
1107 |
+ ("virtual/ffmpeg:0*", "4-slot-abi", {"slot": "0", "sub_slot": None, "slot_operator": "*"}), |
1108 |
+ ("virtual/ffmpeg:0", "4-slot-abi", {"slot": "0", "sub_slot": None, "slot_operator": None}), |
1109 |
+ ("virtual/ffmpeg", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": None}), |
1110 |
) |
1111 |
|
1112 |
for atom, eapi, parts in tests: |
1113 |
|
1114 |
diff --git a/pym/portage/tests/dep/test_match_from_list.py b/pym/portage/tests/dep/test_match_from_list.py |
1115 |
index d5d718f..2a1945b 100644 |
1116 |
--- a/pym/portage/tests/dep/test_match_from_list.py |
1117 |
+++ b/pym/portage/tests/dep/test_match_from_list.py |
1118 |
@@ -17,14 +17,14 @@ class Package(object): |
1119 |
atom = Atom(atom, allow_repo=True) |
1120 |
self.cp = atom.cp |
1121 |
slot = atom.slot |
1122 |
- if atom.slot_abi: |
1123 |
- slot = "%s/%s" % (slot, atom.slot_abi) |
1124 |
+ if atom.sub_slot: |
1125 |
+ slot = "%s/%s" % (slot, atom.sub_slot) |
1126 |
if not slot: |
1127 |
slot = '0' |
1128 |
self.cpv = _pkg_str(atom.cpv, slot=slot, repo=atom.repo) |
1129 |
self.cpv_split = catpkgsplit(self.cpv) |
1130 |
self.slot = self.cpv.slot |
1131 |
- self.slot_abi = self.cpv.slot_abi |
1132 |
+ self.sub_slot = self.cpv.sub_slot |
1133 |
self.repo = atom.repo |
1134 |
if atom.use: |
1135 |
self.use = self._use_class(atom.use.enabled) |
1136 |
|
1137 |
diff --git a/pym/portage/tests/resolver/test_complete_graph.py b/pym/portage/tests/resolver/test_complete_graph.py |
1138 |
index 1b0342c..95b1f88 100644 |
1139 |
--- a/pym/portage/tests/resolver/test_complete_graph.py |
1140 |
+++ b/pym/portage/tests/resolver/test_complete_graph.py |
1141 |
@@ -93,7 +93,7 @@ class CompleteGraphTestCase(TestCase): |
1142 |
test_cases = ( |
1143 |
ResolverPlaygroundTestCase( |
1144 |
[">=sys-libs/x-2"], |
1145 |
- options = {"--complete-graph-if-new-ver" : "n", "--rebuild-if-new-slot-abi": "n"}, |
1146 |
+ options = {"--complete-graph-if-new-ver" : "n", "--rebuild-if-new-slot": "n"}, |
1147 |
mergelist = ["sys-libs/x-2"], |
1148 |
success = True, |
1149 |
), |
1150 |
@@ -106,7 +106,7 @@ class CompleteGraphTestCase(TestCase): |
1151 |
), |
1152 |
ResolverPlaygroundTestCase( |
1153 |
["<sys-libs/x-1"], |
1154 |
- options = {"--complete-graph-if-new-ver" : "n", "--rebuild-if-new-slot-abi": "n"}, |
1155 |
+ options = {"--complete-graph-if-new-ver" : "n", "--rebuild-if-new-slot": "n"}, |
1156 |
mergelist = ["sys-libs/x-0.1"], |
1157 |
success = True, |
1158 |
), |
1159 |
|
1160 |
diff --git a/pym/portage/tests/resolver/test_slot_abi.py b/pym/portage/tests/resolver/test_slot_abi.py |
1161 |
index 6381bcc..8aed5d3 100644 |
1162 |
--- a/pym/portage/tests/resolver/test_slot_abi.py |
1163 |
+++ b/pym/portage/tests/resolver/test_slot_abi.py |
1164 |
@@ -65,7 +65,7 @@ class SlotAbiTestCase(TestCase): |
1165 |
|
1166 |
ResolverPlaygroundTestCase( |
1167 |
["dev-libs/icu"], |
1168 |
- options = {"--oneshot": True, "--ignore-built-slot-abi-deps": "y"}, |
1169 |
+ options = {"--oneshot": True, "--ignore-built-slot-operator-deps": "y"}, |
1170 |
success = True, |
1171 |
mergelist = ["dev-libs/icu-49"]), |
1172 |
|
1173 |
@@ -83,7 +83,7 @@ class SlotAbiTestCase(TestCase): |
1174 |
|
1175 |
ResolverPlaygroundTestCase( |
1176 |
["dev-libs/icu"], |
1177 |
- options = {"--oneshot": True, "--usepkgonly": True, "--ignore-built-slot-abi-deps": "y"}, |
1178 |
+ options = {"--oneshot": True, "--usepkgonly": True, "--ignore-built-slot-operator-deps": "y"}, |
1179 |
success = True, |
1180 |
mergelist = ["[binary]dev-libs/icu-49"]), |
1181 |
|
1182 |
@@ -95,7 +95,7 @@ class SlotAbiTestCase(TestCase): |
1183 |
|
1184 |
ResolverPlaygroundTestCase( |
1185 |
["@world"], |
1186 |
- options = {"--update": True, "--deep": True, "--ignore-built-slot-abi-deps": "y"}, |
1187 |
+ options = {"--update": True, "--deep": True, "--ignore-built-slot-operator-deps": "y"}, |
1188 |
success = True, |
1189 |
mergelist = ["dev-libs/icu-49"]), |
1190 |
|
1191 |
@@ -113,7 +113,7 @@ class SlotAbiTestCase(TestCase): |
1192 |
|
1193 |
ResolverPlaygroundTestCase( |
1194 |
["@world"], |
1195 |
- options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-abi-deps": "y"}, |
1196 |
+ options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-operator-deps": "y"}, |
1197 |
success = True, |
1198 |
mergelist = ["[binary]dev-libs/icu-49"]), |
1199 |
|
1200 |
@@ -178,7 +178,7 @@ class SlotAbiTestCase(TestCase): |
1201 |
|
1202 |
ResolverPlaygroundTestCase( |
1203 |
["sys-libs/db"], |
1204 |
- options = {"--oneshot": True, "--ignore-built-slot-abi-deps": "y"}, |
1205 |
+ options = {"--oneshot": True, "--ignore-built-slot-operator-deps": "y"}, |
1206 |
success = True, |
1207 |
mergelist = ["sys-libs/db-4.8"]), |
1208 |
|
1209 |
@@ -196,7 +196,7 @@ class SlotAbiTestCase(TestCase): |
1210 |
|
1211 |
ResolverPlaygroundTestCase( |
1212 |
["sys-libs/db"], |
1213 |
- options = {"--oneshot": True, "--rebuild-if-new-slot-abi": "n"}, |
1214 |
+ options = {"--oneshot": True, "--rebuild-if-new-slot": "n"}, |
1215 |
success = True, |
1216 |
mergelist = ["sys-libs/db-4.8"]), |
1217 |
|
1218 |
@@ -214,7 +214,7 @@ class SlotAbiTestCase(TestCase): |
1219 |
|
1220 |
ResolverPlaygroundTestCase( |
1221 |
["@world"], |
1222 |
- options = {"--update": True, "--deep": True, "--usepkg": True, "--ignore-built-slot-abi-deps": "y"}, |
1223 |
+ options = {"--update": True, "--deep": True, "--usepkg": True, "--ignore-built-slot-operator-deps": "y"}, |
1224 |
success = True, |
1225 |
mergelist = ["[binary]sys-libs/db-4.8"]), |
1226 |
|
1227 |
@@ -226,13 +226,13 @@ class SlotAbiTestCase(TestCase): |
1228 |
|
1229 |
ResolverPlaygroundTestCase( |
1230 |
["@world"], |
1231 |
- options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-abi-deps": "y"}, |
1232 |
+ options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-operator-deps": "y"}, |
1233 |
success = True, |
1234 |
mergelist = ["[binary]sys-libs/db-4.8"]), |
1235 |
|
1236 |
ResolverPlaygroundTestCase( |
1237 |
["@world"], |
1238 |
- options = {"--update": True, "--deep": True, "--rebuild-if-new-slot-abi": "n"}, |
1239 |
+ options = {"--update": True, "--deep": True, "--rebuild-if-new-slot": "n"}, |
1240 |
success = True, |
1241 |
mergelist = []), |
1242 |
|
1243 |
@@ -312,7 +312,7 @@ class SlotAbiTestCase(TestCase): |
1244 |
|
1245 |
ResolverPlaygroundTestCase( |
1246 |
["dev-libs/glib"], |
1247 |
- options = {"--oneshot": True, "--ignore-built-slot-abi-deps": "y"}, |
1248 |
+ options = {"--oneshot": True, "--ignore-built-slot-operator-deps": "y"}, |
1249 |
success = True, |
1250 |
mergelist = ["dev-libs/glib-2.32.3"]), |
1251 |
|
1252 |
@@ -330,7 +330,7 @@ class SlotAbiTestCase(TestCase): |
1253 |
|
1254 |
ResolverPlaygroundTestCase( |
1255 |
["dev-libs/glib"], |
1256 |
- options = {"--oneshot": True, "--usepkgonly": True, "--ignore-built-slot-abi-deps": "y"}, |
1257 |
+ options = {"--oneshot": True, "--usepkgonly": True, "--ignore-built-slot-operator-deps": "y"}, |
1258 |
success = True, |
1259 |
mergelist = ["[binary]dev-libs/glib-2.32.3"]), |
1260 |
|
1261 |
@@ -342,7 +342,7 @@ class SlotAbiTestCase(TestCase): |
1262 |
|
1263 |
ResolverPlaygroundTestCase( |
1264 |
["@world"], |
1265 |
- options = {"--update": True, "--deep": True, "--ignore-built-slot-abi-deps": "y"}, |
1266 |
+ options = {"--update": True, "--deep": True, "--ignore-built-slot-operator-deps": "y"}, |
1267 |
success = True, |
1268 |
mergelist = ["dev-libs/glib-2.32.3"]), |
1269 |
|
1270 |
@@ -360,7 +360,7 @@ class SlotAbiTestCase(TestCase): |
1271 |
|
1272 |
ResolverPlaygroundTestCase( |
1273 |
["@world"], |
1274 |
- options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-abi-deps": "y"}, |
1275 |
+ options = {"--update": True, "--deep": True, "--usepkgonly": True, "--ignore-built-slot-operator-deps": "y"}, |
1276 |
success = True, |
1277 |
mergelist = ["[binary]dev-libs/glib-2.32.3"]), |
1278 |
|
1279 |
|
1280 |
diff --git a/pym/portage/tests/resolver/test_slot_abi_downgrade.py b/pym/portage/tests/resolver/test_slot_abi_downgrade.py |
1281 |
index 45a7555..08e9a9d 100644 |
1282 |
--- a/pym/portage/tests/resolver/test_slot_abi_downgrade.py |
1283 |
+++ b/pym/portage/tests/resolver/test_slot_abi_downgrade.py |
1284 |
@@ -61,7 +61,7 @@ class SlotAbiDowngradeTestCase(TestCase): |
1285 |
|
1286 |
ResolverPlaygroundTestCase( |
1287 |
["dev-libs/icu"], |
1288 |
- options = {"--oneshot": True, "--ignore-built-slot-abi-deps": "y"}, |
1289 |
+ options = {"--oneshot": True, "--ignore-built-slot-operator-deps": "y"}, |
1290 |
success = True, |
1291 |
mergelist = ["dev-libs/icu-4.8"]), |
1292 |
|
1293 |
@@ -85,7 +85,7 @@ class SlotAbiDowngradeTestCase(TestCase): |
1294 |
|
1295 |
ResolverPlaygroundTestCase( |
1296 |
["@world"], |
1297 |
- options = {"--update": True, "--deep": True, "--ignore-built-slot-abi-deps": "y"}, |
1298 |
+ options = {"--update": True, "--deep": True, "--ignore-built-slot-operator-deps": "y"}, |
1299 |
success = True, |
1300 |
mergelist = ["dev-libs/icu-4.8"]), |
1301 |
|
1302 |
@@ -173,7 +173,7 @@ class SlotAbiDowngradeTestCase(TestCase): |
1303 |
|
1304 |
ResolverPlaygroundTestCase( |
1305 |
["dev-libs/glib"], |
1306 |
- options = {"--oneshot": True, "--ignore-built-slot-abi-deps": "y"}, |
1307 |
+ options = {"--oneshot": True, "--ignore-built-slot-operator-deps": "y"}, |
1308 |
success = True, |
1309 |
mergelist = ["dev-libs/glib-2.30.2"]), |
1310 |
|
1311 |
@@ -197,7 +197,7 @@ class SlotAbiDowngradeTestCase(TestCase): |
1312 |
|
1313 |
ResolverPlaygroundTestCase( |
1314 |
["@world"], |
1315 |
- options = {"--update": True, "--deep": True, "--ignore-built-slot-abi-deps": "y"}, |
1316 |
+ options = {"--update": True, "--deep": True, "--ignore-built-slot-operator-deps": "y"}, |
1317 |
success = True, |
1318 |
mergelist = ["dev-libs/glib-2.30.2"]), |
1319 |
|
1320 |
|
1321 |
diff --git a/pym/portage/versions.py b/pym/portage/versions.py |
1322 |
index 692256b..242623f 100644 |
1323 |
--- a/pym/portage/versions.py |
1324 |
+++ b/pym/portage/versions.py |
1325 |
@@ -372,19 +372,19 @@ class _pkg_str(_unicode): |
1326 |
if slot_match is None: |
1327 |
# Avoid an InvalidAtom exception when creating SLOT atoms |
1328 |
self.__dict__['slot'] = '0' |
1329 |
- self.__dict__['slot_abi'] = '0' |
1330 |
+ self.__dict__['sub_slot'] = '0' |
1331 |
self.__dict__['slot_invalid'] = slot |
1332 |
else: |
1333 |
- if eapi_attrs.slot_abi: |
1334 |
+ if eapi_attrs.slot_operator: |
1335 |
slot_split = slot.split("/") |
1336 |
self.__dict__['slot'] = slot_split[0] |
1337 |
if len(slot_split) > 1: |
1338 |
- self.__dict__['slot_abi'] = slot_split[1] |
1339 |
+ self.__dict__['sub_slot'] = slot_split[1] |
1340 |
else: |
1341 |
- self.__dict__['slot_abi'] = slot_split[0] |
1342 |
+ self.__dict__['sub_slot'] = slot_split[0] |
1343 |
else: |
1344 |
self.__dict__['slot'] = slot |
1345 |
- self.__dict__['slot_abi'] = slot |
1346 |
+ self.__dict__['sub_slot'] = slot |
1347 |
|
1348 |
if repo is not None: |
1349 |
repo = _gen_valid_repo(repo) |