summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-09 12:09:22 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-09 12:09:22 -0700
commit80a9cd59ed8df549ff0991705040d5270c8d0d03 (patch)
treea09b8b2ead9ce0b090bf32ca20e836b030bb9d7e /pym
parentcaede8f642482b923c2d5ae7e630494dae849d4e (diff)
downloadportage-80a9cd59ed8df549ff0991705040d5270c8d0d03.tar.gz
portage-80a9cd59ed8df549ff0991705040d5270c8d0d03.tar.bz2
portage-80a9cd59ed8df549ff0991705040d5270c8d0d03.zip
Revert "RepoConfigLoader: Recursively expand masters."
This reverts commit ab2a6cc357ba3c8272a4a1556e2c0bcd4bee102e. Reverting all masters recursion code for now (see bug #386569).
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/repository/config.py48
1 files changed, 21 insertions, 27 deletions
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index 1d042ac0e..8f5517711 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -484,38 +484,32 @@ class RepoConfigLoader(object):
self._prepos_changed = True
self._repo_location_list = []
- def get_masters(repo_name, repo, recurse=True):
- master_repos = []
+ #The 'masters' key currently contains repo names. Replace them with the matching RepoConfig.
+ for repo_name, repo in prepos.items():
+ if repo_name == "DEFAULT":
+ continue
if repo.masters is None:
if self.mainRepo() and repo_name != self.mainRepo().name:
- master_repos = [self.mainRepo()]
+ repo.masters = self.mainRepo(),
else:
- master_repos = []
+ repo.masters = ()
else:
- for master in repo.masters:
- if isinstance(master, RepoConfig):
- master_repos.append(master)
+ if repo.masters and isinstance(repo.masters[0], RepoConfig):
+ # This one has already been processed
+ # because it has an alias.
+ continue
+ master_repos = []
+ for master_name in repo.masters:
+ if master_name not in prepos:
+ layout_filename = os.path.join(repo.user_location,
+ "metadata", "layout.conf")
+ writemsg_level(_("Unavailable repository '%s' " \
+ "referenced by masters entry in '%s'\n") % \
+ (master_name, layout_filename),
+ level=logging.ERROR, noiselevel=-1)
else:
- if master not in prepos:
- layout_filename = os.path.join(repo.user_location,
- "metadata", "layout.conf")
- writemsg_level(_("Unavailable repository '%s' " \
- "referenced by masters entry in '%s'\n") % \
- (master_name, layout_filename),
- level=logging.ERROR, noiselevel=-1)
- else:
- master = prepos[master]
- if recurse:
- master_repos.extend(get_masters(master.name, master) + [master])
- else:
- master_repos.append(master)
- return master_repos
-
- #The 'masters' key currently contains repo names. Replace them with the matching RepoConfig.
- for repo_name, repo in prepos.items():
- if repo_name == "DEFAULT":
- continue
- repo.masters = tuple(get_masters(repo_name, repo))
+ master_repos.append(prepos[master_name])
+ repo.masters = tuple(master_repos)
#The 'eclass_overrides' key currently contains repo names. Replace them with the matching repo paths.
for repo_name, repo in prepos.items():