The ACCEPT_KEYWORDS variable informs the package manager which ebuilds' KEYWORDS values it is allowed to accept.
Where the variable is set?
The variable is usually set through the Gentoo profile but can be overruled in the users' /etc/portage/make.conf file, per-package in the /etc/portage/package.accept_keywords file/directory or even on the command line.
It is generally considered a bad idea to override the ACCEPT_KEYWORDS variable on the command line, as this is not persistent and might result in unwanted behavior from the package manager.
Stable and unstable keywords
The default value of most profiles' ACCEPT_KEYWORDS variable is the architecture itself, like
arm. In these cases, the package manager will only accept ebuilds whose KEYWORDS variable contains this architecture. If the user wants to be able to install and work with ebuilds that are not considered production-ready yet, they can add the same architecture but with the
~ prefix to it, like so:
One should not specify the stable keyword (
amd64) when adding the testing keyword (
~amd64) because ACCEPT_KEYWORDS is an incremental variable.
If the setting is not to be made system-wide, then it can be set per-package in the package.accept_keywords file or directory:
# games games-fps/doomsday ~amd64
In addition to the normal values from ACCEPT_KEYWORDS, package.accept_keywords supports three special tokens:
*— Package is visible if it is stable on any architecture.
~*— Package is visible if it is in testing on any architecture.
**— Package is always visible (KEYWORDS are ignored completely).
The last choice is useful for live package versions (which are SVN/Git/Mercurial/… versions of packages, supported through what is called a live ebuild and which don't have a KEYWORDS variable).
- Gentoo Portage, Manual page for Portage. Retrieved on January 30th, 2015.