Difference between pages "Portage Profile Logic" and "User:FabioBeneditto"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
m (Drobbins moved page Portage Profiles to Portage Profile Logic)
 
(Fabiobeneditto moved page User:FabioBeneditto to User:Fabiobeneditto: Renamed user from FabioBeneditto to Fabiobeneditto)
 
Line 1: Line 1:
== Gentoo Initialization ==
#REDIRECT [[User:Fabiobeneditto]]
 
Gentoo profile initialization has been documented in [https://github.com/funtoo/portage-funtoo/commit/4c6826a0029c3c8f0aa92e70b4e50f2ffc58c7fa#diff-0 this GitHub commit], and describes how Gentoo's Portage finds and processes profiles. Basically, Gentoo's Portage looks for profiles using this algorithm:
 
# Does <tt>/etc/make.profile</tt> exist? If so, it defines the primary profile.
# If not, does <tt>/etc/portage/make.profile</tt> exist? If so, it defines the primary profile.
# Recursively process the <tt>parent</tt> file found in the primary profile to build a list of all cascading profiles
# if <tt>/etc/portage/profile</tt> exists, it is a user-defined profile - tack it to the end of our profile list so it can modify anything in the cascading profiles.
 
Here is a more detailed description of the steps:
 
# Look for a profile directory/symlink at <tt>/etc/make.profile</tt>, if one exists, use this as the main profile directory.
# If <tt>/etc/make.profile</tt> doesn't exist, use <tt>/etc/portage/make.profile</tt> as a back-up location if it exists.
# If neither location exists, then a main profile directory doesn't exist and is undefined (None)
 
Using the main profile directory/symlink found above, the <tt>LocationsManager._addProfile()</tt> recursive function will be called that will create a list of all cascading profiles. This works by looking for a <tt>parent</tt> file in the profile directory. If this file exists, then each line is treated as a ''relative path'' and used to modify the path to the current profile, pointing to a "parent" profile that this particular profile modifies. There can be more than one parent, one per line. ''The first line in the <tt>parent</tt> file is the highest-priority parent.''
 
Once this list is created, the code checks to see if <tt>/etc/portage/profile</tt> directory exists. If it does, it is tacked at the end of the cascading profile list, meaning that it is evaluated last and this user-defined profile has the ability to modify any of the cascading profile settings. It provides an ideal hook point for a user-defined profile that can tweak anything the user wants to modify in the profile.
 
[[Category:Portage]]

Latest revision as of 17:45, April 18, 2015