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", "CROSS_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","CROSS_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"] = "" |
1714 |
edepend["CROSS_HDEPEND"] = "" |
1713 |
ignore_build_time_deps = True |
1715 |
ignore_build_time_deps = True |
|
|
1716 |
|
1717 |
is_crosscompile = self._frozen_config.myopts.get("--crosscompile") |
1714 |
|
1718 |
|
1715 |
if removal_action: |
1719 |
if removal_action: |
1716 |
depend_root = myroot |
1720 |
depend_root = myroot |
1717 |
else: |
1721 |
else: |
1718 |
depend_root = self._frozen_config._running_root.root |
1722 |
if pkg.metadata['EAPI'] not in ('0', '1', '2', '3', '4'): |
1719 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1723 |
# For ebuilds that have EAPI 5 or later, --root-deps |
1720 |
if root_deps is not None: |
1724 |
# has no effect, since DEPEND has been divided into two parts: |
1721 |
if root_deps is True: |
1725 |
# DEPEND for build-time target dependencies, and HDEPEND for |
|
|
1726 |
# build-time host dependencies. |
1727 |
if is_crosscompile: |
1722 |
depend_root = myroot |
1728 |
depend_root = myroot |
1723 |
elif root_deps == "rdeps": |
1729 |
else: |
1724 |
ignore_build_time_deps = True |
1730 |
depend_root = self._frozen_config._running_root.root |
|
|
1731 |
else: |
1732 |
depend_root = self._frozen_config._running_root.root |
1733 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1734 |
if root_deps is not None: |
1735 |
if root_deps is True: |
1736 |
depend_root = myroot |
1737 |
elif root_deps == "rdeps": |
1738 |
ignore_build_time_deps = True |
1725 |
|
1739 |
|
1726 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1740 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1727 |
# build-time dependencies. If you want these deps to be traversed |
1741 |
# build-time dependencies. If you want these deps to be traversed |
Lines 1729-1734
Link Here
|
1729 |
if ignore_build_time_deps and \ |
1743 |
if ignore_build_time_deps and \ |
1730 |
not self._rebuild.rebuild: |
1744 |
not self._rebuild.rebuild: |
1731 |
edepend["DEPEND"] = "" |
1745 |
edepend["DEPEND"] = "" |
|
|
1746 |
edepend["HDEPEND"] = "" |
1747 |
edepend["CROSS_HDEPEND"] = "" |
1732 |
|
1748 |
|
1733 |
deps = ( |
1749 |
deps = ( |
1734 |
(depend_root, edepend["DEPEND"], |
1750 |
(depend_root, edepend["DEPEND"], |
Lines 1738-1744
Link Here
|
1738 |
(myroot, edepend["RDEPEND"], |
1754 |
(myroot, edepend["RDEPEND"], |
1739 |
self._priority(runtime=True)), |
1755 |
self._priority(runtime=True)), |
1740 |
(myroot, edepend["PDEPEND"], |
1756 |
(myroot, edepend["PDEPEND"], |
1741 |
self._priority(runtime_post=True)) |
1757 |
self._priority(runtime_post=True)), |
|
|
1758 |
(self._frozen_config._running_root.root, edepend["HDEPEND"], |
1759 |
self._priority(buildtime=True, |
1760 |
optional=(pkg.built or ignore_build_time_deps), |
1761 |
ignored=ignore_build_time_deps)), |
1762 |
(self._frozen_config._running_root.root, edepend["CROSS_HDEPEND"], |
1763 |
self._priority(buildtime=True, |
1764 |
optional=(pkg.built or ignore_build_time_deps), |
1765 |
ignored=(ignore_build_time_deps or not is_crosscompile))) |
1742 |
) |
1766 |
) |
1743 |
|
1767 |
|
1744 |
debug = "--debug" in self._frozen_config.myopts |
1768 |
debug = "--debug" in self._frozen_config.myopts |
Lines 2835-2841
Link Here
|
2835 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2859 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2836 |
|
2860 |
|
2837 |
blockers = {} |
2861 |
blockers = {} |
2838 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND"] |
2862 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND", "HDEPEND", "CROSS_HDEPEND"] |
2839 |
for pkg in greedy_pkgs + [highest_pkg]: |
2863 |
for pkg in greedy_pkgs + [highest_pkg]: |
2840 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2864 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2841 |
try: |
2865 |
try: |
Lines 3096-3102
Link Here
|
3096 |
|
3120 |
|
3097 |
if target_atom is not None and isinstance(node, Package): |
3121 |
if target_atom is not None and isinstance(node, Package): |
3098 |
affecting_use = set() |
3122 |
affecting_use = set() |
3099 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND": |
3123 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND", "CROSS_HDEPEND": |
3100 |
try: |
3124 |
try: |
3101 |
affecting_use.update(extract_affecting_use( |
3125 |
affecting_use.update(extract_affecting_use( |
3102 |
node.metadata[dep_str], target_atom, |
3126 |
node.metadata[dep_str], target_atom, |
Lines 3180-3189
Link Here
|
3180 |
dep_strings.add(node.metadata["DEPEND"]) |
3204 |
dep_strings.add(node.metadata["DEPEND"]) |
3181 |
dep_strings.add(node.metadata["RDEPEND"]) |
3205 |
dep_strings.add(node.metadata["RDEPEND"]) |
3182 |
dep_strings.add(node.metadata["PDEPEND"]) |
3206 |
dep_strings.add(node.metadata["PDEPEND"]) |
|
|
3207 |
dep_strings.add(node.metadata["HDEPEND"]) |
3208 |
dep_strings.add(node.metadata["CROSS_HDEPEND"]) |
3183 |
else: |
3209 |
else: |
3184 |
for priority in priorities: |
3210 |
for priority in priorities: |
3185 |
if priority.buildtime: |
3211 |
if priority.buildtime: |
3186 |
dep_strings.add(node.metadata["DEPEND"]) |
3212 |
dep_strings.add(node.metadata["DEPEND"]) |
|
|
3213 |
dep_strings.add(node.metadata["HDEPEND"]) |
3214 |
dep_strings.add(node.metadata["CROSS_HDEPEND"]) |
3187 |
if priority.runtime: |
3215 |
if priority.runtime: |
3188 |
dep_strings.add(node.metadata["RDEPEND"]) |
3216 |
dep_strings.add(node.metadata["RDEPEND"]) |
3189 |
if priority.runtime_post: |
3217 |
if priority.runtime_post: |
Lines 4126-4132
Link Here
|
4126 |
if pkg not in self._dynamic_config.digraph.nodes: |
4154 |
if pkg not in self._dynamic_config.digraph.nodes: |
4127 |
return False |
4155 |
return False |
4128 |
|
4156 |
|
4129 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "LICENSE": |
4157 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND", "CROSS_HDEPEND", "LICENSE": |
4130 |
dep = pkg.metadata[key] |
4158 |
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)) |
4159 |
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)) |
4160 |
new_val = set(portage.dep.use_reduce(dep, new_use, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |