summaryrefslogtreecommitdiffstats
path: root/pym/portage/repository
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-27 23:17:19 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-27 23:17:19 -0700
commit46d97be05dae690373ef802788adb5cf1505f947 (patch)
treef32ea9f3b34b2abd4fc659eaa401fe06074fc7b5 /pym/portage/repository
parentbcb6106c7547738bd00e31b53b0cec582e1ac84c (diff)
downloadportage-46d97be05dae690373ef802788adb5cf1505f947.tar.gz
portage-46d97be05dae690373ef802788adb5cf1505f947.tar.bz2
portage-46d97be05dae690373ef802788adb5cf1505f947.zip
RepoConfigLoader: support incremental aliases
This allows a user to discard unwanted aliases that are specified in a repo's layout.conf.
Diffstat (limited to 'pym/portage/repository')
-rw-r--r--pym/portage/repository/config.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index 5b5ddd633..1a7effe1f 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -19,7 +19,8 @@ from portage import os
from portage.const import (MANIFEST2_HASH_FUNCTIONS, MANIFEST2_REQUIRED_HASH,
REPO_NAME_LOC, USER_CONFIG_PATH)
from portage.env.loaders import KeyValuePairFileLoader
-from portage.util import normalize_path, writemsg, writemsg_level, shlex_split
+from portage.util import (normalize_path, writemsg, writemsg_level,
+ shlex_split, stack_lists)
from portage.localization import _
from portage import _unicode_decode
from portage import _unicode_encode
@@ -390,17 +391,13 @@ class RepoConfigLoader(object):
if repo.masters is None:
repo.masters = layout_data['masters']
- aliases = layout_data.get('aliases')
- if aliases and aliases.strip():
- aliases = aliases.split()
- else:
- aliases = None
-
if layout_data['aliases']:
aliases = repo.aliases
if aliases is None:
aliases = ()
- repo.aliases = tuple(aliases) + layout_data['aliases']
+ # repos.conf aliases come after layout.conf aliases, giving
+ # them the ability to do incremental overrrides
+ repo.aliases = layout_data['aliases'] + tuple(aliases)
for value in ('sign-manifest', 'thin-manifest', 'allow-missing-manifest',
'create-manifest', 'disable-manifest', 'cache-formats', 'manifest-hashes',
@@ -417,7 +414,8 @@ class RepoConfigLoader(object):
names = set()
names.add(repo_name)
if repo.aliases:
- names.update(repo.aliases)
+ aliases = stack_lists([repo.aliases], incremental=True)
+ names.update(aliases)
for name in names:
if name in new_prepos: