repositories which satisfy dependencies on eclasses and/or ebuilds. Each
repository name should correspond the value of a \fBrepo_name\fR entry
from one of the repositories that is configured via the \fBPORTDIR\fR or
-\fBPORTDIR_OVERLAY\fR variables (see \fBmake.conf\fR(5)). Site-specific
+\fBPORTDIR_OVERLAY\fR variables (see \fBmake.conf\fR(5)). Repositories listed
+toward the right of the \fBmasters\fR list take precedence over those listed
+toward the left of the list. \fISite-specific\fR
overrides to \fBlayout.conf\fR settings may be specified in
-\fB/etc/portage/repos.conf\fR.
+\fB/etc/portage/repos.conf\fR. Settings in \fBrepos.conf\fR take
+precedence over settings in \fBlayout.conf\fR, except tools such as
+\fBrepoman\fR(1) and \fBegencache\fR(1) will entirely ignore
+\fBrepos.conf\fR since their operations are inherently \fBnot\fR
+\fIsite\-specific\fR.
.I Example:
.nf
+# eclasses provided by java-overlay take precedence over identically named
+# eclasses that are provided by gentoo
masters = gentoo java-overlay
.fi
.RE
else:
inherited = inherited.split()
- if inherited:
- if tree_data.src_db.complete_eclass_entries and \
- eclasses is None:
- noise.corruption(cpv, "missing _eclasses_ field")
- continue
+ if tree_data.src_db.complete_eclass_entries and \
+ eclasses is None:
+ noise.corruption(cpv, "missing _eclasses_ field")
+ continue
+ if inherited:
# Even if _eclasses_ already exists, replace it with data from
# eclass_cache, in order to insert local eclass paths.
try:
noise.eclass_stale(cpv)
continue
src['_eclasses_'] = eclasses
+ else:
+ src['_eclasses_'] = {}
if not eapi_supported:
src = {
dead_nodes.difference_update(tree_data.valid_nodes)
for cpv in dead_nodes:
try:
- tree_data.dest_db[cpv]
+ del tree_data.dest_db[cpv]
except (KeyError, CacheError):
pass
if portage.secpass < 2:
# We've already allowed "--version" and "--help" above.
if "--pretend" not in myopts and myaction not in ("search","info"):
- need_superuser = myaction in ('deselect',) or not \
+ need_superuser = myaction in ('clean', 'depclean', 'deselect',
+ 'prune', 'unmerge') or not \
(fetchonly or \
(buildpkgonly and secpass >= 1) or \
myaction in ("metadata", "regen") or \
def intersects(self, other):
"""
- Atoms with different operator or cpv attributes cause this method to
- return False. TODO: Detect intersection when operators are present.
+ Atoms with different cpv, operator or use attributes cause this method
+ to return False even though there may actually be some intersection.
+ TODO: Detect more forms of intersection.
@param other: The package atom to match
@type other: Atom
@rtype: Boolean