This repo for WhaleOS is based on https://chromium.googlesource.com/chromiumos/overlays/board-overlays/.
This directory contains board overlays. When a board is configured using
setup_board --board <board>
the following overlays are added to the
make.conf
PORTDIR_OVERLAY
if they exist:
src/overlays/overlay-<board>
src/private-overlays/overlay-<board>-private
A private board overlay can augment an existing non-private board overlay, or can serve as the primary board overlay for a board with no non-private board overlay.
All board overlays should contain a toolchain.conf
, specifying the
toolchains required to build that board. Variants can inherit toolchain.conf
from their primary board overlay.
The board and variant names can not have underscores or spaces in them.
Overlays can contain named profiles as subdirectories of the profiles
directory. If the board overlay contains a base
profile, Portage will use
that by default for the board; otherwise, Portage will use a profile from
chromiumos-overlay
.
Within a profile, a board overlay will most commonly want to specify
package-specific USE
flags via package.use
, mask or unmask package versions
via package.mask
and package.unmask
, or mask or unmask keywords via
package.keywords
. See man portage
in the chroot for full details on those
and other files that can appear in a profile.
Profiles in a board overlay must have a file parent
containing a
list of parent profiles. Each listed profile may be of the format
repo-name:profile
, or a relative path to another profile in the same overlay.
Adding a base profile to a board overlay that did not previously have a
profile will require re-running setup_board
with --force
.
Overlays should contain a metadata
directory with a layout.conf
file
therein. The layout.conf
file specifies the masters
list. This is a list
of repository names (via repo-name
). This list disambiguates the selection of
ebuilds. When two overlays supply the same ebuild the overlay whose repo_name
is listed later in the masters list will be used. The masters list also effects
the way that portage searches for eclasses. By having the chromiumos
overlay
as the last entry in the masters list, portage will correctly find the
chromiumos specific eclasses.
A board overlay will typically want to provide additional packages to
install. ChromiumOS builds install the virtual/target-os
package by default,
whose RDEPEND
brings in all the packages installed by default.
virtual/target-os
RDEPEND
s on the virtual package virtual/chromeos-bsp
,
which exists for board overlays to override. chromiumos-overlay
provides a
default version of virtual/chromeos-bsp
which RDEPEND
s on the empty package
chromeos-base/chromeos-bsp-null
. Board overlays should provide a
virtual/chromeos-bsp
package that RDEPEND
s on
chromeos-base/chromeos-bsp-boardname
, and a
chromeos-base/chromeos-bsp-boardname
package that RDEPEND
s on any desired
board-specific packages.
A board overlay can also provide additional packages to install in dev
builds only, via similar packages virtual/chromeos-bsp-dev
and
chromeos-base/chromeos-bsp-dev-boardname
. ChromiumOS dev builds install
virtual/target-os-dev
by default, which RDEPEND
s on
virtual/chromeos-bsp-dev
via means of virtual/target-chromium-os-dev
.
Similarly, a virtual/chromeos-bsp-test
package can be provided for
test images.
Note that a board overlay cannot specify package-specific USE
flags by using
an RDEPEND
with a use flag, such as section/package[useflag]
; instead, add
section/package useflag
to package.use
in a profile.
The host (non-cross-compiling) build environment will use the following overlay if it exists:
src/private-overlays/chromeos-overlay
This overlay contains private packages needed on the host system to compile target packages used in a private overlay. Packages only needed on the target system should appear in a private board overlay.
Like a board overlay, a private host overlay must include a layout.conf
with masters
set, so that the packages within that host overlay can reference
eclasses from the parent overlays chromiumos-overlay
or portage-stable
.