This overlay contains curated unmodified(*) Gentoo packages that are part of
the Chromium OS build and are exact copies of upstream Gentoo packages.

For information on updating ebuilds here, see:
	http://dev.chromium.org/chromium-os/gentoo-package-upgrade-process

Note: While there are tools to help automate importing of updates, the overall
process is not fully automatic: a developer must initiate the process as well
as run all the proper tests themselves (trybots/etc...).

Licensing information can be found in the respective files, so consult them
directly, or refer to the upstream Gentoo copy:
	http://sources.gentoo.org/gentoo-x86/

(*)
The spirit of this repo is that any package may be blindly blown away when
upgrading to a newer version.  So we sometimes allow minor changes to be
merged as long as that spirit is maintained.

We also munge the ebuild to set KEYWORDS="*" when importing.  The upstream
values have no bearing on our usage or porting efforts.
