Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13508 - in main/branches/2.1.6: man pym/portage pym/portage/dbapi
Date: Thu, 30 Apr 2009 07:14:02
Message-Id: E1LzQT0-0008Mo-U3@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-04-30 07:13:58 +0000 (Thu, 30 Apr 2009)
3 New Revision: 13508
4
5 Modified:
6 main/branches/2.1.6/man/portage.5
7 main/branches/2.1.6/pym/portage/__init__.py
8 main/branches/2.1.6/pym/portage/dbapi/porttree.py
9 Log:
10 Add support for repos.conf 'aliases' attribute which allows alias
11 substitution in metadata/layout.conf repository references. (trunk r13352)
12
13 Modified: main/branches/2.1.6/man/portage.5
14 ===================================================================
15 --- main/branches/2.1.6/man/portage.5 2009-04-30 07:13:40 UTC (rev 13507)
16 +++ main/branches/2.1.6/man/portage.5 2009-04-30 07:13:58 UTC (rev 13508)
17 @@ -558,18 +558,21 @@
18
19 .I Example:
20 .nf
21 +[DEFAULT]
22 # make all repositories inherit eclasses from the java\-overlay and
23 # java\-experimental repositories, with eclasses from java\-experimental
24 # taking precedence over those from java\-overlay
25 -[DEFAULT]
26 eclass\-overrides = java\-overlay java\-experimental
27
28 +[gentoo]
29 # disable all eclass overrides for ebuilds from the gentoo repository
30 -[gentoo]
31 eclass\-overrides =
32 +# when processing metadata/layout.conf from other repositories, substitute
33 +# 'gentoo' in place of references to repositories named 'foo' and 'bar'
34 +aliases = foo bar
35
36 +[kde-testing]
37 # override the metadata/layout.conf masters setting from the kde-testing repo
38 -[kde-testing]
39 masters = gentoo kde
40 .fi
41 .RE
42
43 Modified: main/branches/2.1.6/pym/portage/__init__.py
44 ===================================================================
45 --- main/branches/2.1.6/pym/portage/__init__.py 2009-04-30 07:13:40 UTC (rev 13507)
46 +++ main/branches/2.1.6/pym/portage/__init__.py 2009-04-30 07:13:58 UTC (rev 13508)
47 @@ -1001,10 +1001,15 @@
48 return regex
49
50 class _local_repo_config(object):
51 - __slots__ = ('eclass_overrides', 'masters', 'name',)
52 + __slots__ = ('aliases', 'eclass_overrides', 'masters', 'name',)
53 def __init__(self, name, repo_opts):
54 self.name = name
55
56 + aliases = repo_opts.get('aliases')
57 + if aliases is not None:
58 + aliases = tuple(aliases.split())
59 + self.aliases = aliases
60 +
61 eclass_overrides = repo_opts.get('eclass-overrides')
62 if eclass_overrides is not None:
63 eclass_overrides = tuple(eclass_overrides.split())
64
65 Modified: main/branches/2.1.6/pym/portage/dbapi/porttree.py
66 ===================================================================
67 --- main/branches/2.1.6/pym/portage/dbapi/porttree.py 2009-04-30 07:13:40 UTC (rev 13507)
68 +++ main/branches/2.1.6/pym/portage/dbapi/porttree.py 2009-04-30 07:13:58 UTC (rev 13508)
69 @@ -200,8 +200,23 @@
70 eclass_dbs = {porttree_root : self.eclassdb}
71 local_repo_configs = self.mysettings._local_repo_configs
72 default_loc_repo_config = None
73 + repo_aliases = {}
74 if local_repo_configs is not None:
75 default_loc_repo_config = local_repo_configs.get('DEFAULT')
76 + for repo_name, loc_repo_conf in local_repo_configs.iteritems():
77 + if loc_repo_conf.aliases is not None:
78 + for alias in loc_repo_conf.aliases:
79 + overridden_alias = repo_aliases.get(alias)
80 + if overridden_alias is not None:
81 + writemsg_level(("!!! Alias '%s' " + \
82 + "created for '%s' overrides " + \
83 + "'%s' alias in " + \
84 + "'%s'\n") % (alias, repo_name,
85 + overridden_alias,
86 + self.mysettings._local_repo_conf_path),
87 + level=logging.WARNING, noiselevel=-1)
88 + repo_aliases[alias] = repo_name
89 +
90 for path in self.porttrees:
91 if path in self._repo_info:
92 continue
93 @@ -228,6 +243,7 @@
94 masters = layout_data.get('masters', '').split()
95
96 for master_name in masters:
97 + master_name = repo_aliases.get(master_name, master_name)
98 master_path = self.treemap.get(master_name)
99 if master_path is None:
100 writemsg_level(("Unavailable repository '%s' " + \