export SANDBOX_ON="0"
;;
help|pretend|setup|preinst)
+ if [[ $EBUILD_SH_ARGS = setup ]] ; then
+ einfo "CPV: $CATEGORY/$PF"
+ einfo "REPO: $PORTAGE_REPO_NAME"
+ einfo "USE: $USE"
+ fi
#pkg_setup needs to be out of the sandbox for tmp file creation;
#for example, awking and piping a file in /tmp requires a temp file to be created
#in /etc. If pkg_setup is in the sandbox, both our lilo and apache ebuilds break.
# Populate the old-style virtuals using the cached values.
if not self.settings.treeVirtuals:
- self.settings._populate_treeVirtuals(self)
+ # Skip the aux_get wrapper here, to avoid unwanted
+ # cache generation.
+ try:
+ self.dbapi.aux_get = self._aux_get
+ self.settings._populate_treeVirtuals(self)
+ finally:
+ self.dbapi.aux_get = self._aux_get_wrapper
def _sync(self):
# it serves as an indicator that blocking packages
# will be temporarily installed simultaneously.
for blocker in solved_blockers:
- blocker.satisfied = True
retlist.append(blocker)
unsolvable_blockers = set(self._dynamic_config._unsolvable_blockers.leaf_nodes())
for node in myblocker_uninstalls.root_nodes():
unsolvable_blockers.add(node)
- for blocker in unsolvable_blockers:
- retlist.append(blocker)
-
# If any Uninstall tasks need to be executed in order
# to avoid a conflict, complete the graph with any
# dependencies that may have been initially
self._dynamic_config.myparams["complete"] = True
raise self._serialize_tasks_retry("")
+ # Set satisfied state on blockers, but not before the
+ # above retry path, since we don't want to modify the
+ # state in that case.
+ for node in retlist:
+ if isinstance(node, Blocker):
+ node.satisfied = True
+
+ for blocker in unsolvable_blockers:
+ retlist.append(blocker)
+
if unsolvable_blockers and \
not self._accept_blocker_conflicts():
self._dynamic_config._unsatisfied_blockers_for_display = unsolvable_blockers
# an argument or a direct member of a set that has
# been specified as an argument (system or world).
if current_node not in self._dynamic_config._set_nodes:
- try:
- parent_nodes = mygraph.parent_nodes(current_node)
- except KeyError:
- # This can happen sometimes for blockers.
- pass
+ parent_nodes = mygraph.parent_nodes(current_node)
if parent_nodes:
child_nodes = set(mygraph.child_nodes(current_node))
selected_parent = None
def _getUseMask(self, pkg):
cp = getattr(pkg, "cp", None)
if cp is None:
- cp = dep_getkey(pkg)
+ cp = cpv_getkey(dep.remove_slot(pkg))
usemask = []
pos = 0
for i, pusemask_dict in enumerate(self.pusemask_list):
def _getUseForce(self, pkg):
cp = getattr(pkg, "cp", None)
if cp is None:
- cp = dep_getkey(pkg)
+ cp = cpv_getkey(dep.remove_slot(pkg))
useforce = []
pos = 0
for i, puseforce_dict in enumerate(self.puseforce_list):