Lines 4754-4759
Link Here
|
4754 |
self._unsatisfied_blockers_for_display = None |
4754 |
self._unsatisfied_blockers_for_display = None |
4755 |
self._circular_deps_for_display = None |
4755 |
self._circular_deps_for_display = None |
4756 |
self._dep_stack = [] |
4756 |
self._dep_stack = [] |
|
|
4757 |
self._dep_disjuctive_stack = [] |
4757 |
self._unsatisfied_deps = [] |
4758 |
self._unsatisfied_deps = [] |
4758 |
self._initially_unsatisfied_deps = [] |
4759 |
self._initially_unsatisfied_deps = [] |
4759 |
self._ignored_deps = [] |
4760 |
self._ignored_deps = [] |
Lines 5035-5050
Link Here
|
5035 |
|
5036 |
|
5036 |
def _create_graph(self, allow_unsatisfied=False): |
5037 |
def _create_graph(self, allow_unsatisfied=False): |
5037 |
dep_stack = self._dep_stack |
5038 |
dep_stack = self._dep_stack |
5038 |
while dep_stack: |
5039 |
dep_disjuctive_stack = self._dep_disjuctive_stack |
|
|
5040 |
while dep_stack or dep_disjuctive_stack: |
5039 |
self.spinner.update() |
5041 |
self.spinner.update() |
5040 |
dep = dep_stack.pop() |
5042 |
while dep_stack: |
5041 |
if isinstance(dep, Package): |
5043 |
dep = dep_stack.pop() |
5042 |
if not self._add_pkg_deps(dep, |
5044 |
if isinstance(dep, Package): |
5043 |
allow_unsatisfied=allow_unsatisfied): |
5045 |
if not self._add_pkg_deps(dep, |
|
|
5046 |
allow_unsatisfied=allow_unsatisfied): |
5047 |
return 0 |
5048 |
continue |
5049 |
if not self._add_dep(dep, allow_unsatisfied=allow_unsatisfied): |
5044 |
return 0 |
5050 |
return 0 |
5045 |
continue |
5051 |
if dep_disjuctive_stack: |
5046 |
if not self._add_dep(dep, allow_unsatisfied=allow_unsatisfied): |
5052 |
self._pop_disjunctive_dep() |
5047 |
return 0 |
|
|
5048 |
return 1 |
5053 |
return 1 |
5049 |
|
5054 |
|
5050 |
def _add_dep(self, dep, allow_unsatisfied=False): |
5055 |
def _add_dep(self, dep, allow_unsatisfied=False): |
Lines 5354-5359
Link Here
|
5354 |
debug = "--debug" in self.myopts |
5359 |
debug = "--debug" in self.myopts |
5355 |
strict = mytype != "installed" |
5360 |
strict = mytype != "installed" |
5356 |
try: |
5361 |
try: |
|
|
5362 |
if not strict: |
5363 |
portage.dep._dep_check_strict = False |
5364 |
|
5357 |
for dep_root, dep_string, dep_priority in deps: |
5365 |
for dep_root, dep_string, dep_priority in deps: |
5358 |
if not dep_string: |
5366 |
if not dep_string: |
5359 |
continue |
5367 |
continue |
Lines 5362-5367
Link Here
|
5362 |
print "Parent: ", jbigkey |
5370 |
print "Parent: ", jbigkey |
5363 |
print "Depstring:", dep_string |
5371 |
print "Depstring:", dep_string |
5364 |
print "Priority:", dep_priority |
5372 |
print "Priority:", dep_priority |
|
|
5373 |
|
5374 |
try: |
5375 |
dep_string = portage.dep.paren_normalize( |
5376 |
portage.dep.use_reduce( |
5377 |
portage.dep.paren_reduce(dep_string), |
5378 |
uselist=pkg.use.enabled)) |
5379 |
except portage.exception.InvalidDependString, e: |
5380 |
if pkg.installed: |
5381 |
del e |
5382 |
continue |
5383 |
show_invalid_depstring_notice(pkg, dep_string, str(e)) |
5384 |
return 0 |
5385 |
|
5386 |
dep_string = self._queue_disjunctive_deps( |
5387 |
pkg, dep_root, dep_priority, dep_string) |
5388 |
|
5389 |
dep_string = portage.dep.paren_enclose(dep_string) |
5390 |
|
5365 |
vardb = self.roots[dep_root].trees["vartree"].dbapi |
5391 |
vardb = self.roots[dep_root].trees["vartree"].dbapi |
5366 |
try: |
5392 |
try: |
5367 |
selected_atoms = self._select_atoms(dep_root, |
5393 |
selected_atoms = self._select_atoms(dep_root, |
Lines 5416-5423
Link Here
|
5416 |
portage.writemsg("!!! Please notify the package maintainer " + \ |
5442 |
portage.writemsg("!!! Please notify the package maintainer " + \ |
5417 |
"that atoms must be fully-qualified.\n", noiselevel=-1) |
5443 |
"that atoms must be fully-qualified.\n", noiselevel=-1) |
5418 |
return 0 |
5444 |
return 0 |
|
|
5445 |
finally: |
5446 |
portage.dep._dep_check_strict = True |
5419 |
return 1 |
5447 |
return 1 |
5420 |
|
5448 |
|
|
|
5449 |
def _queue_disjunctive_deps(self, pkg, dep_root, dep_priority, dep_string): |
5450 |
""" |
5451 |
Queue disjunctive (virtual and ||) deps in self._dep_disjuctive_stack. |
5452 |
Return only non-disjunctive deps. |
5453 |
""" |
5454 |
raise NotImplementedError(self) |
5455 |
|
5456 |
def _pop_disjunctive_dep(self): |
5457 |
""" |
5458 |
Pop one disjuctive dep from self._dep_disjuctive_stack, and use it to |
5459 |
populate self._dep_stack. |
5460 |
""" |
5461 |
raise NotImplementedError(self) |
5462 |
|
5421 |
def _priority(self, **kwargs): |
5463 |
def _priority(self, **kwargs): |
5422 |
if "remove" in self.myparams: |
5464 |
if "remove" in self.myparams: |
5423 |
priority_constructor = UnmergeDepPriority |
5465 |
priority_constructor = UnmergeDepPriority |