Lines 503-509
Link Here
|
503 |
|
503 |
|
504 |
pkg_tree_map = RootConfig.pkg_tree_map |
504 |
pkg_tree_map = RootConfig.pkg_tree_map |
505 |
|
505 |
|
506 |
_dep_keys = ["DEPEND", "RDEPEND", "PDEPEND"] |
506 |
_dep_keys = ["DEPEND", "RDEPEND", "PDEPEND", "HDEPEND"] |
507 |
|
507 |
|
508 |
def __init__(self, settings, trees, myopts, myparams, spinner, |
508 |
def __init__(self, settings, trees, myopts, myparams, spinner, |
509 |
frozen_config=None, backtrack_parameters=BacktrackParameter(), allow_backtracking=False): |
509 |
frozen_config=None, backtrack_parameters=BacktrackParameter(), allow_backtracking=False): |
Lines 1682-1688
Link Here
|
1682 |
removal_action = "remove" in self._dynamic_config.myparams |
1682 |
removal_action = "remove" in self._dynamic_config.myparams |
1683 |
|
1683 |
|
1684 |
edepend={} |
1684 |
edepend={} |
1685 |
depkeys = ["DEPEND","RDEPEND","PDEPEND"] |
1685 |
depkeys = ["DEPEND","RDEPEND","PDEPEND","HDEPEND"] |
1686 |
for k in depkeys: |
1686 |
for k in depkeys: |
1687 |
edepend[k] = metadata[k] |
1687 |
edepend[k] = metadata[k] |
1688 |
|
1688 |
|
Lines 1710-1727
Link Here
|
1710 |
# Removal actions never traverse ignored buildtime |
1710 |
# Removal actions never traverse ignored buildtime |
1711 |
# dependencies, so it's safe to discard them early. |
1711 |
# dependencies, so it's safe to discard them early. |
1712 |
edepend["DEPEND"] = "" |
1712 |
edepend["DEPEND"] = "" |
|
|
1713 |
edepend["HDEPEND"] = "" |
1713 |
ignore_build_time_deps = True |
1714 |
ignore_build_time_deps = True |
1714 |
|
1715 |
|
1715 |
if removal_action: |
1716 |
if removal_action: |
1716 |
depend_root = myroot |
1717 |
depend_root = myroot |
1717 |
else: |
1718 |
else: |
1718 |
depend_root = self._frozen_config._running_root.root |
1719 |
if pkg.metadata['EAPI'] not in ('0', '1', '2', '3', '4'): |
1719 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1720 |
# For ebuilds that have EAPI 5 or later, --root-deps |
1720 |
if root_deps is not None: |
1721 |
# has no effect, since DEPEND has been divided into two parts: |
1721 |
if root_deps is True: |
1722 |
# DEPEND for build-time target dependencies, and HDEPEND for |
1722 |
depend_root = myroot |
1723 |
# build-time host dependencies. |
1723 |
elif root_deps == "rdeps": |
1724 |
depend_root = myroot |
1724 |
ignore_build_time_deps = True |
1725 |
else: |
|
|
1726 |
depend_root = self._frozen_config._running_root.root |
1727 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1728 |
if root_deps is not None: |
1729 |
if root_deps is True: |
1730 |
depend_root = myroot |
1731 |
elif root_deps == "rdeps": |
1732 |
ignore_build_time_deps = True |
1725 |
|
1733 |
|
1726 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1734 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1727 |
# build-time dependencies. If you want these deps to be traversed |
1735 |
# build-time dependencies. If you want these deps to be traversed |
Lines 1729-1734
Link Here
|
1729 |
if ignore_build_time_deps and \ |
1737 |
if ignore_build_time_deps and \ |
1730 |
not self._rebuild.rebuild: |
1738 |
not self._rebuild.rebuild: |
1731 |
edepend["DEPEND"] = "" |
1739 |
edepend["DEPEND"] = "" |
|
|
1740 |
edepend["HDEPEND"] = "" |
1732 |
|
1741 |
|
1733 |
deps = ( |
1742 |
deps = ( |
1734 |
(depend_root, edepend["DEPEND"], |
1743 |
(depend_root, edepend["DEPEND"], |
Lines 1738-1744
Link Here
|
1738 |
(myroot, edepend["RDEPEND"], |
1747 |
(myroot, edepend["RDEPEND"], |
1739 |
self._priority(runtime=True)), |
1748 |
self._priority(runtime=True)), |
1740 |
(myroot, edepend["PDEPEND"], |
1749 |
(myroot, edepend["PDEPEND"], |
1741 |
self._priority(runtime_post=True)) |
1750 |
self._priority(runtime_post=True)), |
|
|
1751 |
(self._frozen_config._running_root.root, edepend["HDEPEND"], |
1752 |
self._priority(buildtime=True, |
1753 |
optional=(pkg.built or ignore_build_time_deps), |
1754 |
ignored=ignore_build_time_deps)) |
1742 |
) |
1755 |
) |
1743 |
|
1756 |
|
1744 |
debug = "--debug" in self._frozen_config.myopts |
1757 |
debug = "--debug" in self._frozen_config.myopts |
Lines 2835-2841
Link Here
|
2835 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2848 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2836 |
|
2849 |
|
2837 |
blockers = {} |
2850 |
blockers = {} |
2838 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND"] |
2851 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND", "HDEPEND"] |
2839 |
for pkg in greedy_pkgs + [highest_pkg]: |
2852 |
for pkg in greedy_pkgs + [highest_pkg]: |
2840 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2853 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2841 |
try: |
2854 |
try: |
Lines 3096-3102
Link Here
|
3096 |
|
3109 |
|
3097 |
if target_atom is not None and isinstance(node, Package): |
3110 |
if target_atom is not None and isinstance(node, Package): |
3098 |
affecting_use = set() |
3111 |
affecting_use = set() |
3099 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND": |
3112 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND": |
3100 |
try: |
3113 |
try: |
3101 |
affecting_use.update(extract_affecting_use( |
3114 |
affecting_use.update(extract_affecting_use( |
3102 |
node.metadata[dep_str], target_atom, |
3115 |
node.metadata[dep_str], target_atom, |
Lines 3180-3189
Link Here
|
3180 |
dep_strings.add(node.metadata["DEPEND"]) |
3193 |
dep_strings.add(node.metadata["DEPEND"]) |
3181 |
dep_strings.add(node.metadata["RDEPEND"]) |
3194 |
dep_strings.add(node.metadata["RDEPEND"]) |
3182 |
dep_strings.add(node.metadata["PDEPEND"]) |
3195 |
dep_strings.add(node.metadata["PDEPEND"]) |
|
|
3196 |
dep_strings.add(node.metadata["HDEPEND"]) |
3183 |
else: |
3197 |
else: |
3184 |
for priority in priorities: |
3198 |
for priority in priorities: |
3185 |
if priority.buildtime: |
3199 |
if priority.buildtime: |
3186 |
dep_strings.add(node.metadata["DEPEND"]) |
3200 |
dep_strings.add(node.metadata["DEPEND"]) |
|
|
3201 |
dep_strings.add(node.metadata["HDEPEND"]) |
3187 |
if priority.runtime: |
3202 |
if priority.runtime: |
3188 |
dep_strings.add(node.metadata["RDEPEND"]) |
3203 |
dep_strings.add(node.metadata["RDEPEND"]) |
3189 |
if priority.runtime_post: |
3204 |
if priority.runtime_post: |
Lines 4126-4132
Link Here
|
4126 |
if pkg not in self._dynamic_config.digraph.nodes: |
4141 |
if pkg not in self._dynamic_config.digraph.nodes: |
4127 |
return False |
4142 |
return False |
4128 |
|
4143 |
|
4129 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "LICENSE": |
4144 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND", "LICENSE": |
4130 |
dep = pkg.metadata[key] |
4145 |
dep = pkg.metadata[key] |
4131 |
old_val = set(portage.dep.use_reduce(dep, pkg.use.enabled, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |
4146 |
old_val = set(portage.dep.use_reduce(dep, pkg.use.enabled, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |
4132 |
new_val = set(portage.dep.use_reduce(dep, new_use, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |
4147 |
new_val = set(portage.dep.use_reduce(dep, new_use, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |