diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-04-06 22:25:15 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-04-06 22:25:15 +0000 |
commit | 2bd2620142d15344f32ef67896c4fa88e5386953 (patch) | |
tree | e65dffa019d22454a0bf776c9f4a0b19dce5bfa9 /pym/_emerge | |
parent | 1ad3342b49e9d488a9beba86ea7096c68c6b1f44 (diff) | |
download | portage-2bd2620142d15344f32ef67896c4fa88e5386953.tar.gz portage-2bd2620142d15344f32ef67896c4fa88e5386953.tar.bz2 portage-2bd2620142d15344f32ef67896c4fa88e5386953.zip |
Add portdbapi support for a metadata/layout.conf file which
specifies information about the repository layout. Currently,
only a single "masters" attribute is supported, which is used
to specify names of repositories which satisfy dependencies
on eclasses and/or ebuilds. Each repository name should
correspond the value of a repo_name entry from one of the
repositories that is configured via the PORTDIR or
PORTDIR_OVERLAY variables.
Since layout.conf is now used to control eclass inheritance,
it is now safer to use overlays which contain forked eclasses
have names identical to those from the main tree. Such
eclasses will only apply to their containing repository and
any other repositories which reference their containing
repository via layout.conf. This solves bug #124041 by
containing eclass overrides so that they don't necessarily
apply to all ebuilds.
Thanks to Alistair Bush <ali_bush@g.o> for his initial patch
for layout.conf support in repoman (will be merged later).
See the "QA Overlay Layout support" thread on the gentoo-dev
mailing list for more information:
http://archives.gentoo.org/gentoo-dev/msg_33c61550b4ed2b7b25dd5a4110e1ec81.xml
svn path=/main/trunk/; revision=13291
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/__init__.py | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index ec160fd02..772a97de4 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -15464,41 +15464,12 @@ def emerge_main(): repo_name_check(trees) config_protect_check(trees) - eclasses_overridden = {} for mytrees in trees.itervalues(): mydb = mytrees["porttree"].dbapi # Freeze the portdbapi for performance (memoize all xmatch results). mydb.freeze() - eclasses_overridden.update(mydb.eclassdb._master_eclasses_overridden) del mytrees, mydb - if eclasses_overridden and \ - settings.get("PORTAGE_ECLASS_WARNING_ENABLE") != "0": - prefix = bad(" * ") - if len(eclasses_overridden) == 1: - writemsg(prefix + "Overlay eclass overrides " + \ - "eclass from PORTDIR:\n", noiselevel=-1) - else: - writemsg(prefix + "Overlay eclasses override " + \ - "eclasses from PORTDIR:\n", noiselevel=-1) - writemsg(prefix + "\n", noiselevel=-1) - for eclass_name in sorted(eclasses_overridden): - writemsg(prefix + " '%s/%s.eclass'\n" % \ - (eclasses_overridden[eclass_name], eclass_name), - noiselevel=-1) - writemsg(prefix + "\n", noiselevel=-1) - msg = "It is best to avoid overriding eclasses from PORTDIR " + \ - "because it will trigger invalidation of cached ebuild metadata " + \ - "that is distributed with the portage tree. If you must " + \ - "override eclasses from PORTDIR then you are advised to add " + \ - "FEATURES=\"metadata-transfer\" to /etc/make.conf and to run " + \ - "`emerge --regen` after each time that you run `emerge --sync`. " + \ - "Set PORTAGE_ECLASS_WARNING_ENABLE=\"0\" in /etc/make.conf if " + \ - "you would like to disable this warning." - from textwrap import wrap - for line in wrap(msg, 72): - writemsg("%s%s\n" % (prefix, line), noiselevel=-1) - if "moo" in myfiles: print """ |