Unified Configuration
This page documents in-development changes to Portage's configuration file handling, intended to make Portage's configuration simpler and more intuitive, and easier to extend.
This code is available on GitHub, and is implemented in the current branch.
Also see Multiple Profiles.
[edit] Unified Profile Implementation
There is a lot of duplication and unnecessary complexity in the Portage configuration directories. To address this, we can treat /etc/portage as the official Portage profile and user configuration directory, and the user updates parents to specify parent profiles. This replaces the /etc/make.profile symbolic link.
/etc/make.conf is replaced with make.defaults inside the /etc/portage directory, so that it follows the profile convention. /etc/portage/profile would be deprecated as it has now been replaced with /etc/portage, and /etc/make.profile would then be deprecated and replaced with /etc/portage/parent. make.conf could be treated as an alternative file naming for make.defaults, to allow /etc/portage/make.conf to be used and allow for easier layman support.
The way this system would be used is that /etc/profile would be treated the official, canonical Portage profile, and /etc/portage/parents would be a file where a user would set their master profile(s). An initial ":" would be used to define profiles that are relative to PORTDIR/profiles, while an initial slash could be used to specify an absolute path, such as /var/lib/layman. Since parent supports more than one profile, it would now be possible for users to set more than one parent profile, so they could set it to something that looks like this:
:funtoo/1.0/linux/gnu/amd64 :funtoo/1.0/linux/flavor/server /var/lib/layman
This additional functionality supports additional optimization of Funtoo Linux (and possibly Gentoo Linux) profiles. For Funtoo, it allows for the simplification of the funtoo-1.0 profile structure since the various "flavors" of systems would not need to be replicated within each architecture's profile.
This functionality could be implemented so that a fallback to the classic Gentoo functionality is preserved (for a time) to allow for migration to the new profile scheme.