Chromium OS‎ > ‎packages‎ > ‎

portage: the Gentoo package manager (aka emerge)

We use Gentoo's portage (aka emerge) as the package manager in Chromium OS.  This page is more geared towards developers of the portage tool itself rather than developers just using it (i.e. for ebuilds, or configuration, etc...).

You can find Chromium OS's mini-fork here:
Changes constantly flow back into upstream Gentoo's tree, but we backport fixes sometimes.

Upstream Repo

The upstream repo can be found here: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git

You can add it to your local tree:
git remote add --tags upstream git://git.overlays.gentoo.org/proj/portage.git

Then you can view/cherry pick easily from there.

Updating Chromium OS

We use the master branch for our main development.  When doing a major upgrade, the next branch can be used for that.
  1. You should first get your fix(es) into the master branch of portage_tool.git.  This means the normal review & merge process with gerrit.
    git push https://chromium.googlesource.com/chromiumos/third_party/portage_tool master:refs/for/master
  2. Cut a new patch snapshot for the tree (replace "2.1.10.11" with the right version):
    git diff v2.1.10.11..master > ../chromiumos-overlay/sys-apps/portage/files/2.1.10.11-r9.patch
  3. Tag the new version in the portage_tool repo:
    git tag cros-2.1.10.11-r9
    # You need special permissions to do this. Ask a build team member for help.
    git push --tags
  4. Rev-bump the ebuild in the chromiumos-overlay repo:
    git mv portage-2.1.10.11-r{8,9}.ebuild
    git rm files/2.1.10.11-r8.patch
    git add files/2.1.10.11-r9.patch
Comments