commit: f6230e5caf431d35944fa927827fa97ac596251f Author: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> AuthorDate: Thu Jan 18 12:00:32 2018 +0000 Commit: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> CommitDate: Thu Jan 18 12:00:32 2018 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=f6230e5c
sys-apps/portage: rebase prefix-chaining patch Closes: https://bugs.gentoo.org/642456 Package-Manager: Portage-2.3.19, Repoman-2.3.6 .../files/portage-2.3.18-prefix-chaining.patch | 90 ++++++++++++++-------- 1 file changed, 60 insertions(+), 30 deletions(-) diff --git a/sys-apps/portage/files/portage-2.3.18-prefix-chaining.patch b/sys-apps/portage/files/portage-2.3.18-prefix-chaining.patch index 1c2537eb00..728b3261ba 100644 --- a/sys-apps/portage/files/portage-2.3.18-prefix-chaining.patch +++ b/sys-apps/portage/files/portage-2.3.18-prefix-chaining.patch @@ -1,10 +1,8 @@ -From: [email protected] +From 2ce322b10b0f1971b174067ca9dac373322e4035 Mon Sep 17 00:00:00 2001 From: Michael Haubenwallner <[email protected]> Date: Thu, 23 Mar 2017 13:52:32 +0100 Subject: [PATCH] add prefix-chaining support -updated for 2.3.18 - --- bin/install-qa-check.d/05prefix | 30 ++++++- bin/phase-helpers.sh | 28 ++++++ @@ -23,6 +21,8 @@ updated for 2.3.18 pym/portage/util/_dyn_libs/LinkageMapELF.py | 4 +- 15 files changed, 376 insertions(+), 47 deletions(-) +diff --git a/bin/install-qa-check.d/05prefix b/bin/install-qa-check.d/05prefix +index 32561e263..0c1147367 100644 --- a/bin/install-qa-check.d/05prefix +++ b/bin/install-qa-check.d/05prefix @@ -79,16 +79,42 @@ install_qa_check_prefix() { @@ -70,6 +70,8 @@ updated for 2.3.18 continue else # this is definitely wrong: script in $PATH and invalid shebang +diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh +index 2cac6f426..b7b5c8ce6 100644 --- a/bin/phase-helpers.sh +++ b/bin/phase-helpers.sh @@ -868,6 +868,10 @@ has_version() { @@ -149,6 +151,8 @@ updated for 2.3.18 retval=$? [[ -n ${output} ]] && echo "${output}" case "${retval}" in +diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py +index 1d37d0ece..2b185ef73 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -39,7 +39,7 @@ from portage import os @@ -160,7 +164,7 @@ updated for 2.3.18 from portage.const import GLOBAL_CONFIG_PATH, VCS_DIRS, _DEPCLEAN_LIB_CHECK_DEFAULT from portage.const import SUPPORTED_BINPKG_FORMATS, TIMESTAMP_FORMAT from portage.dbapi.dep_expand import dep_expand -@@ -65,6 +65,7 @@ from portage.util.SlotObject import Slot +@@ -65,6 +65,7 @@ from portage.util.SlotObject import SlotObject from portage.util._async.run_main_scheduler import run_main_scheduler from portage.util._async.SchedulerInterface import SchedulerInterface from portage.util._eventloop.global_event_loop import global_event_loop @@ -168,7 +172,7 @@ updated for 2.3.18 from portage._global_updates import _global_updates from portage.sync.old_tree_timestamp import old_tree_timestamp_warn from portage.localization import _ -@@ -2659,6 +2660,9 @@ def missing_sets_warning(root_config, mi +@@ -2659,6 +2660,9 @@ def missing_sets_warning(root_config, missing_sets): if portage.const.EPREFIX: global_config_path = os.path.join(portage.const.EPREFIX, portage.const.GLOBAL_CONFIG_PATH.lstrip(os.sep)) @@ -178,6 +182,8 @@ updated for 2.3.18 msg.append(" This usually means that '%s'" % \ (os.path.join(global_config_path, "sets/portage.conf"),)) msg.append(" is missing or corrupt.") +diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py +index 8d00f93df..fe317f119 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3239,15 +3239,15 @@ class depgraph(object): @@ -200,18 +206,17 @@ updated for 2.3.18 self._priority(buildtime=True, optional=(pkg.built or ignore_hdepend_deps), ignored=ignore_hdepend_deps)), -@@ -3255,8 +3255,8 @@ class depgraph(object): +@@ -3255,7 +3255,8 @@ class depgraph(object): debug = "--debug" in self._frozen_config.myopts - for dep_root, dep_string, dep_priority in deps: -- if not dep_string: + for dep_root, dep_type, dep_priority in deps: -+ if not dep_string: ++ dep_string = edepend[dep_type] + if not dep_string: continue if debug: - writemsg_level("\nParent: %s\n" % (pkg,), -@@ -3293,7 +3293,7 @@ class depgraph(object): +@@ -3293,7 +3294,7 @@ class depgraph(object): try: dep_string = list(self._queue_disjunctive_deps( @@ -220,7 +225,7 @@ updated for 2.3.18 except portage.exception.InvalidDependString as e: if pkg.installed: self._dynamic_config._masked_installed.add(pkg) -@@ -3308,14 +3308,14 @@ class depgraph(object): +@@ -3308,14 +3309,14 @@ class depgraph(object): if not self._add_pkg_dep_string( pkg, dep_root, dep_priority, dep_string, @@ -237,7 +242,7 @@ updated for 2.3.18 _autounmask_backup = self._dynamic_config._autounmask if dep_priority.optional or dep_priority.ignored: # Temporarily disable autounmask for deps that -@@ -3324,7 +3324,7 @@ class depgraph(object): +@@ -3324,7 +3325,7 @@ class depgraph(object): try: return self._wrapped_add_pkg_dep_string( pkg, dep_root, dep_priority, dep_string, @@ -246,7 +251,7 @@ updated for 2.3.18 finally: self._dynamic_config._autounmask = _autounmask_backup -@@ -3360,7 +3360,7 @@ class depgraph(object): +@@ -3360,7 +3361,7 @@ class depgraph(object): not slot_operator_rebuild def _wrapped_add_pkg_dep_string(self, pkg, dep_root, dep_priority, @@ -255,7 +260,7 @@ updated for 2.3.18 if isinstance(pkg.depth, int): depth = pkg.depth + 1 else: -@@ -3384,7 +3384,7 @@ class depgraph(object): +@@ -3384,7 +3385,7 @@ class depgraph(object): try: selected_atoms = self._select_atoms(dep_root, dep_string, myuse=self._pkg_use_enabled(pkg), parent=pkg, @@ -264,7 +269,7 @@ updated for 2.3.18 except portage.exception.InvalidDependString: if pkg.installed: self._dynamic_config._masked_installed.add(pkg) -@@ -3691,7 +3691,7 @@ class depgraph(object): +@@ -3691,7 +3692,7 @@ class depgraph(object): child_pkgs.sort() yield (atom, child_pkgs[-1]) @@ -273,7 +278,7 @@ updated for 2.3.18 """ Queue disjunctive (virtual and ||) deps in self._dynamic_config._dep_disjunctive_stack. Yields non-disjunctive deps. Raises InvalidDependString when -@@ -3700,33 +3700,33 @@ class depgraph(object): +@@ -3700,33 +3701,33 @@ class depgraph(object): for x in dep_struct: if isinstance(x, list): if x and x[0] == "||": @@ -314,7 +319,7 @@ updated for 2.3.18 return 0 return 1 -@@ -4579,7 +4579,7 @@ class depgraph(object): +@@ -4579,7 +4580,7 @@ class depgraph(object): return self._select_atoms_highest_available(*pargs, **kwargs) def _select_atoms_highest_available(self, root, depstring, @@ -323,7 +328,7 @@ updated for 2.3.18 """This will raise InvalidDependString if necessary. If trees is None then self._dynamic_config._filtered_trees is used.""" -@@ -4602,6 +4602,13 @@ class depgraph(object): +@@ -4602,6 +4603,13 @@ class depgraph(object): pkgsettings = self._frozen_config.pkgsettings[root] if trees is None: trees = self._dynamic_config._filtered_trees @@ -337,7 +342,7 @@ updated for 2.3.18 mytrees = trees[root] atom_graph = digraph() if True: -@@ -4633,7 +4640,7 @@ class depgraph(object): +@@ -4633,7 +4641,7 @@ class depgraph(object): mycheck = portage.dep_check(depstring, None, pkgsettings, myuse=myuse, @@ -346,7 +351,7 @@ updated for 2.3.18 finally: # restore state self._dynamic_config._autounmask = _autounmask_backup -@@ -4709,6 +4716,7 @@ class depgraph(object): +@@ -4709,6 +4717,7 @@ class depgraph(object): continue node_stack.append((child_node, node, child_atom)) @@ -354,9 +359,11 @@ updated for 2.3.18 return selected_atoms def _expand_virt_from_graph(self, root, atom): +diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py +index e993ce17d..32a942c73 100644 --- a/pym/_emerge/resolver/output.py +++ b/pym/_emerge/resolver/output.py -@@ -22,11 +22,12 @@ from portage.localization import localiz +@@ -22,11 +22,12 @@ from portage.localization import localized_size from portage.package.ebuild.config import _get_feature_flags from portage.package.ebuild._spawn_nofetch import spawn_nofetch from portage.output import ( blue, colorize, create_color_func, @@ -421,9 +428,11 @@ updated for 2.3.18 self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: +diff --git a/pym/portage/_sets/__init__.py b/pym/portage/_sets/__init__.py +index 2c9bf9715..6a2784207 100644 --- a/pym/portage/_sets/__init__.py +++ b/pym/portage/_sets/__init__.py -@@ -21,6 +21,7 @@ from portage.const import _ENABLE_SET_CO +@@ -21,6 +21,7 @@ from portage.const import _ENABLE_SET_CONFIG from portage.exception import PackageSetNotFound from portage.localization import _ from portage.util import writemsg_level @@ -431,7 +440,7 @@ updated for 2.3.18 from portage.util.configparser import (SafeConfigParser, NoOptionError, ParsingError, read_configs) -@@ -281,6 +282,10 @@ def load_default_config(settings, trees) +@@ -281,6 +282,10 @@ def load_default_config(settings, trees): if portage.const.EPREFIX: global_config_path = os.path.join(portage.const.EPREFIX, GLOBAL_CONFIG_PATH.lstrip(os.sep)) @@ -442,6 +451,8 @@ updated for 2.3.18 vcs_dirs = [_unicode_encode(x, encoding=_encodings['fs']) for x in VCS_DIRS] def _getfiles(): for path, dirs, files in os.walk(os.path.join(global_config_path, "sets")): +diff --git a/pym/portage/const.py b/pym/portage/const.py +index dd4657835..6be443082 100644 --- a/pym/portage/const.py +++ b/pym/portage/const.py @@ -189,6 +189,7 @@ SUPPORTED_FEATURES = frozenset([ @@ -452,7 +463,7 @@ updated for 2.3.18 "prelink-checksums", "preserve-libs", "protect-owned", -@@ -239,6 +240,11 @@ MANIFEST2_IDENTIFIERS = ("AUX", "MISC +@@ -239,6 +240,11 @@ MANIFEST2_IDENTIFIERS = ("AUX", "MISC", "DIST", "EBUILD") #EPREFIX = "" # END PREFIX LOCAL @@ -464,6 +475,8 @@ updated for 2.3.18 # pick up EPREFIX from the environment if set if "PORTAGE_OVERRIDE_EPREFIX" in os.environ: EPREFIX = os.environ["PORTAGE_OVERRIDE_EPREFIX"] +diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py +index d2c35f9e3..79d612b2d 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -195,8 +195,19 @@ class vardbapi(dbapi): @@ -545,6 +558,8 @@ updated for 2.3.18 self.settings = settings self.dbapi = vardbapi(settings=settings, vartree=self) self.populated = 1 +diff --git a/pym/portage/dep/dep_check.py b/pym/portage/dep/dep_check.py +index 2bb9dc339..cc017a2a7 100644 --- a/pym/portage/dep/dep_check.py +++ b/pym/portage/dep/dep_check.py @@ -298,6 +298,95 @@ class _dep_choice(SlotObject): @@ -643,7 +658,7 @@ updated for 2.3.18 def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): """ Takes an unreduced and reduced deplist and removes satisfied dependencies. -@@ -695,7 +784,7 @@ def dep_zapdeps(unreduced, reduced, myro +@@ -695,7 +784,7 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): assert(False) # This point should not be reachable def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None, @@ -652,7 +667,7 @@ updated for 2.3.18 """ Takes a depend string, parses it, and selects atoms. The myroot parameter is unused (use mysettings['EROOT'] instead). -@@ -796,6 +885,14 @@ def dep_check(depstring, mydbapi, mysett +@@ -796,6 +885,14 @@ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None, writemsg("mysplit: %s\n" % (mysplit), 1) writemsg("mysplit2: %s\n" % (mysplit2), 1) @@ -667,6 +682,8 @@ updated for 2.3.18 selected_atoms = dep_zapdeps(mysplit, mysplit2, myroot, use_binaries=use_binaries, trees=trees) +diff --git a/pym/portage/package/ebuild/_config/LocationsManager.py b/pym/portage/package/ebuild/_config/LocationsManager.py +index 55b8c089a..32e969ed7 100644 --- a/pym/portage/package/ebuild/_config/LocationsManager.py +++ b/pym/portage/package/ebuild/_config/LocationsManager.py @@ -307,6 +307,9 @@ class LocationsManager(object): @@ -679,6 +696,8 @@ updated for 2.3.18 def set_port_dirs(self, portdir, portdir_overlay): self.portdir = portdir +diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py +index d013b0d5c..fdb1552e9 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -306,6 +306,7 @@ class config(object): @@ -764,6 +783,8 @@ updated for 2.3.18 # Prefix variables are supported beginning with EAPI 3, or when # force-prefix is in FEATURES, since older EAPIs would otherwise be # useless with prefix configurations. This brings compatibility with +diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py +index a24f8fec8..82fcba9e2 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -51,6 +51,7 @@ from portage import bsd_chflags, \ @@ -774,7 +795,7 @@ updated for 2.3.18 EBUILD_SH_BINARY, INVALID_ENV_FILE, MISC_SH_BINARY, PORTAGE_PYM_PACKAGES, EPREFIX, MACOSSANDBOX_PROFILE from portage.data import portage_gid, portage_uid, secpass, \ uid, userpriv_groups -@@ -72,6 +73,7 @@ from portage.package.ebuild.prepare_buil +@@ -72,6 +73,7 @@ from portage.package.ebuild.prepare_build_dirs import prepare_build_dirs from portage.process import find_binary from portage.util import ( apply_recursive_permissions, apply_secpass_permissions, @@ -782,7 +803,7 @@ updated for 2.3.18 noiselimit, shlex_split, varexpand, -@@ -79,6 +81,7 @@ from portage.util import ( apply_recursi +@@ -79,6 +81,7 @@ from portage.util import ( apply_recursive_permissions, writemsg_stdout, write_atomic ) @@ -819,9 +840,11 @@ updated for 2.3.18 path.extend(rootpath) path.extend(extrapath) # END PREFIX LOCAL +diff --git a/pym/portage/package/ebuild/fetch.py b/pym/portage/package/ebuild/fetch.py +index 265d0c9fc..2ec6ff472 100644 --- a/pym/portage/package/ebuild/fetch.py +++ b/pym/portage/package/ebuild/fetch.py -@@ -43,6 +43,7 @@ from portage.output import colorize, EOu +@@ -43,6 +43,7 @@ from portage.output import colorize, EOutput from portage.util import apply_recursive_permissions, \ apply_secpass_permissions, ensure_dirs, grabdict, shlex_split, \ varexpand, writemsg, writemsg_level, writemsg_stdout @@ -829,7 +852,7 @@ updated for 2.3.18 from portage.process import spawn _userpriv_spawn_kwargs = ( -@@ -874,6 +875,9 @@ def fetch(myuris, mysettings, listonly=0 +@@ -874,6 +875,9 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, global_config_path = GLOBAL_CONFIG_PATH if portage.const.EPREFIX: global_config_path = os.path.join(portage.const.EPREFIX, @@ -839,6 +862,8 @@ updated for 2.3.18 GLOBAL_CONFIG_PATH.lstrip(os.sep)) missing_file_param = False +diff --git a/pym/portage/sync/controller.py b/pym/portage/sync/controller.py +index 3bccf6f74..cacd63797 100644 --- a/pym/portage/sync/controller.py +++ b/pym/portage/sync/controller.py @@ -94,19 +94,20 @@ class SyncManager(object): @@ -875,6 +900,8 @@ updated for 2.3.18 def __getattr__(self, name): if name == 'async': +diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py +index a063621c1..968fbd339 100644 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py @@ -12,7 +12,7 @@ from portage import _os_merge @@ -895,3 +922,6 @@ updated for 2.3.18 args.extend(os.path.join(root, x.lstrip("." + os.sep)) \ for x in plibs) try: +-- +2.13.6 +
