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 537-542
Link Here
|
537 |
"--nodeps" not in self._frozen_config.myopts |
537 |
"--nodeps" not in self._frozen_config.myopts |
538 |
|
538 |
|
539 |
if self._frozen_config.myopts.get("--root-deps") is not None and \ |
539 |
if self._frozen_config.myopts.get("--root-deps") is not None and \ |
|
|
540 |
self._frozen_config.myopts.get("--host-deps", "y") == "n" and \ |
540 |
myroot != self._frozen_config.target_root: |
541 |
myroot != self._frozen_config.target_root: |
541 |
continue |
542 |
continue |
542 |
|
543 |
|
Lines 1682-1688
Link Here
|
1682 |
removal_action = "remove" in self._dynamic_config.myparams |
1683 |
removal_action = "remove" in self._dynamic_config.myparams |
1683 |
|
1684 |
|
1684 |
edepend={} |
1685 |
edepend={} |
1685 |
depkeys = ["DEPEND","RDEPEND","PDEPEND"] |
1686 |
depkeys = ["DEPEND","RDEPEND","PDEPEND","HDEPEND","CROSS_HDEPEND"] |
1686 |
for k in depkeys: |
1687 |
for k in depkeys: |
1687 |
edepend[k] = metadata[k] |
1688 |
edepend[k] = metadata[k] |
1688 |
|
1689 |
|
Lines 1710-1740
Link Here
|
1710 |
# Removal actions never traverse ignored buildtime |
1711 |
# Removal actions never traverse ignored buildtime |
1711 |
# dependencies, so it's safe to discard them early. |
1712 |
# dependencies, so it's safe to discard them early. |
1712 |
edepend["DEPEND"] = "" |
1713 |
edepend["DEPEND"] = "" |
|
|
1714 |
edepend["HDEPEND"] = "" |
1715 |
edepend["CROSS_HDEPEND"] = "" |
1713 |
ignore_build_time_deps = True |
1716 |
ignore_build_time_deps = True |
1714 |
|
1717 |
|
|
|
1718 |
ignore_depend_deps = ignore_build_time_deps |
1719 |
ignore_hdepend_deps = ignore_build_time_deps |
1720 |
|
1721 |
depend_is_host = False |
1722 |
|
1715 |
if removal_action: |
1723 |
if removal_action: |
1716 |
depend_root = myroot |
1724 |
depend_root = myroot |
1717 |
else: |
1725 |
else: |
1718 |
depend_root = self._frozen_config._running_root.root |
1726 |
if pkg.metadata['EAPI'] not in ('0', '1', '2', '3', '4'): |
1719 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1727 |
# For ebuilds that have EAPI 5 or later, --root-deps |
1720 |
if root_deps is not None: |
1728 |
# has no effect, since DEPEND has been divided into two parts: |
1721 |
if root_deps is True: |
1729 |
# DEPEND for build-time target dependencies, and HDEPEND for |
1722 |
depend_root = myroot |
1730 |
# build-time host dependencies. |
1723 |
elif root_deps == "rdeps": |
1731 |
depend_root = myroot |
1724 |
ignore_build_time_deps = True |
1732 |
else: |
|
|
1733 |
depend_root = self._frozen_config._running_root.root |
1734 |
depend_is_host = True |
1735 |
root_deps = self._frozen_config.myopts.get("--root-deps") |
1736 |
if root_deps is not None: |
1737 |
if root_deps is True: |
1738 |
depend_root = myroot |
1739 |
depend_is_host = False |
1740 |
elif root_deps == "rdeps": |
1741 |
ignore_depend_deps = True |
1742 |
|
1743 |
if self._frozen_config.myopts.get("--host-deps", "y") == 'n': |
1744 |
ignore_hdepend_deps = True |
1745 |
if depend_is_host: |
1746 |
ignore_depend_deps = True |
1747 |
|
1748 |
ignore_cross_hdepend_deps = ignore_hdepend_deps |
1749 |
if self._frozen_config.myopts.get("--crosscompile") not in ('True', 'y'): |
1750 |
ignore_cross_hdepend_deps = True |
1725 |
|
1751 |
|
1726 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1752 |
# If rebuild mode is not enabled, it's safe to discard ignored |
1727 |
# build-time dependencies. If you want these deps to be traversed |
1753 |
# build-time dependencies. If you want these deps to be traversed |
1728 |
# in "complete" mode then you need to specify --with-bdeps=y. |
1754 |
# in "complete" mode then you need to specify --with-bdeps=y. |
1729 |
if ignore_build_time_deps and \ |
1755 |
if not self._rebuild.rebuild: |
1730 |
not self._rebuild.rebuild: |
1756 |
if ignore_depend_deps: |
1731 |
edepend["DEPEND"] = "" |
1757 |
edepend["DEPEND"] = "" |
1732 |
|
1758 |
if ignore_hdepend_deps: |
|
|
1759 |
edepend["HDEPEND"] = "" |
1760 |
if ignore_cross_hdepend_deps: |
1761 |
edepend["CROSS_HDEPEND"] = "" |
1762 |
|
1733 |
deps = ( |
1763 |
deps = ( |
1734 |
(depend_root, edepend["DEPEND"], |
1764 |
(depend_root, edepend["DEPEND"], |
1735 |
self._priority(buildtime=True, |
1765 |
self._priority(buildtime=True, |
1736 |
optional=(pkg.built or ignore_build_time_deps), |
1766 |
optional=(pkg.built or ignore_depend_deps), |
1737 |
ignored=ignore_build_time_deps)), |
1767 |
ignored=ignore_depend_deps)), |
|
|
1768 |
(self._frozen_config._running_root.root, edepend["HDEPEND"], |
1769 |
self._priority(buildtime=True, |
1770 |
optional=(pkg.built or ignore_hdepend_deps), |
1771 |
ignored=ignore_hdepend_deps)), |
1772 |
(self._frozen_config._running_root.root, edepend["CROSS_HDEPEND"], |
1773 |
self._priority(buildtime=True, |
1774 |
optional=(pkg.built or ignore_cross_hdepend_deps), |
1775 |
ignored=ignore_cross_hdepend_deps)), |
1738 |
(myroot, edepend["RDEPEND"], |
1776 |
(myroot, edepend["RDEPEND"], |
1739 |
self._priority(runtime=True)), |
1777 |
self._priority(runtime=True)), |
1740 |
(myroot, edepend["PDEPEND"], |
1778 |
(myroot, edepend["PDEPEND"], |
Lines 2835-2841
Link Here
|
2835 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2873 |
return [pkg.slot_atom for pkg in greedy_pkgs] |
2836 |
|
2874 |
|
2837 |
blockers = {} |
2875 |
blockers = {} |
2838 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND"] |
2876 |
blocker_dep_keys = ["DEPEND", "PDEPEND", "RDEPEND", "HDEPEND", "CROSS_HDEPEND"] |
2839 |
for pkg in greedy_pkgs + [highest_pkg]: |
2877 |
for pkg in greedy_pkgs + [highest_pkg]: |
2840 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2878 |
dep_str = " ".join(pkg.metadata[k] for k in blocker_dep_keys) |
2841 |
try: |
2879 |
try: |
Lines 3096-3102
Link Here
|
3096 |
|
3134 |
|
3097 |
if target_atom is not None and isinstance(node, Package): |
3135 |
if target_atom is not None and isinstance(node, Package): |
3098 |
affecting_use = set() |
3136 |
affecting_use = set() |
3099 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND": |
3137 |
for dep_str in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND", "CROSS_HDEPEND": |
3100 |
try: |
3138 |
try: |
3101 |
affecting_use.update(extract_affecting_use( |
3139 |
affecting_use.update(extract_affecting_use( |
3102 |
node.metadata[dep_str], target_atom, |
3140 |
node.metadata[dep_str], target_atom, |
Lines 3180-3189
Link Here
|
3180 |
dep_strings.add(node.metadata["DEPEND"]) |
3218 |
dep_strings.add(node.metadata["DEPEND"]) |
3181 |
dep_strings.add(node.metadata["RDEPEND"]) |
3219 |
dep_strings.add(node.metadata["RDEPEND"]) |
3182 |
dep_strings.add(node.metadata["PDEPEND"]) |
3220 |
dep_strings.add(node.metadata["PDEPEND"]) |
|
|
3221 |
dep_strings.add(node.metadata["HDEPEND"]) |
3222 |
dep_strings.add(node.metadata["CROSS_HDEPEND"]) |
3183 |
else: |
3223 |
else: |
3184 |
for priority in priorities: |
3224 |
for priority in priorities: |
3185 |
if priority.buildtime: |
3225 |
if priority.buildtime: |
3186 |
dep_strings.add(node.metadata["DEPEND"]) |
3226 |
dep_strings.add(node.metadata["DEPEND"]) |
|
|
3227 |
dep_strings.add(node.metadata["HDEPEND"]) |
3228 |
dep_strings.add(node.metadata["CROSS_HDEPEND"]) |
3187 |
if priority.runtime: |
3229 |
if priority.runtime: |
3188 |
dep_strings.add(node.metadata["RDEPEND"]) |
3230 |
dep_strings.add(node.metadata["RDEPEND"]) |
3189 |
if priority.runtime_post: |
3231 |
if priority.runtime_post: |
Lines 4126-4132
Link Here
|
4126 |
if pkg not in self._dynamic_config.digraph.nodes: |
4168 |
if pkg not in self._dynamic_config.digraph.nodes: |
4127 |
return False |
4169 |
return False |
4128 |
|
4170 |
|
4129 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "LICENSE": |
4171 |
for key in "DEPEND", "RDEPEND", "PDEPEND", "HDEPEND", "CROSS_HDEPEND", "LICENSE": |
4130 |
dep = pkg.metadata[key] |
4172 |
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)) |
4173 |
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)) |
4174 |
new_val = set(portage.dep.use_reduce(dep, new_use, is_valid_flag=pkg.iuse.is_valid_flag, flat=True)) |