The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Creating Profiles"
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{PageNeedsUpdates}} | |||
{{note |'''"The example in the Creating Profiles guide to add a mix-in for an overlay no longer works due to eselect profile module not functional with Funtoo profiles"'''}} | |||
Want to create your own custom profiles? Thought up a mix-in that's not currently in the Funtoo profiles? Have an overlay with profiles and want to make it easy for people to use them? Well you've come to the right place. This article will show you how to easily add you own profiles. No more ugly hacking of parent files and other nonsense. Once you follow this guide, not only will portage easily recognize your profiles, they will also show up in eselect right along with the ones from the main tree. | Want to create your own custom profiles? Thought up a mix-in that's not currently in the Funtoo profiles? Have an overlay with profiles and want to make it easy for people to use them? Well you've come to the right place. This article will show you how to easily add you own profiles. No more ugly hacking of parent files and other nonsense. Once you follow this guide, not only will portage easily recognize your profiles, they will also show up in eselect right along with the ones from the main tree. | ||
Line 10: | Line 13: | ||
** If you're creating profiles of types arch, build, flavor, or mix-ins, your profile must be inside a directory with same name, such as <code><overlay_name>/profiles/<profile_name>/flavor/<flavor_name></code>, <code><overlay_name>/profiles/<profile_name>/mix-ins/<mix-ins_name></code> | ** If you're creating profiles of types arch, build, flavor, or mix-ins, your profile must be inside a directory with same name, such as <code><overlay_name>/profiles/<profile_name>/flavor/<flavor_name></code>, <code><overlay_name>/profiles/<profile_name>/mix-ins/<mix-ins_name></code> | ||
{{note | Currently, <tt>NoMix</tt> (see <code>profiles.eselect.example</code> in the Funtoo portage tree) is only supported for profiles in the same tree.}} | {{note |Currently, <tt>NoMix</tt> (see <code>profiles.eselect.example</code> in the Funtoo portage tree) is only supported for profiles in the same tree.}} | ||
Also: | Also: | ||
Line 72: | Line 75: | ||
[[Category:Labs]] | [[Category:Labs]] | ||
[[Category:HOWTO]] | [[Category:HOWTO]] | ||
Latest revision as of 05:09, November 19, 2017
"The example in the Creating Profiles guide to add a mix-in for an overlay no longer works due to eselect profile module not functional with Funtoo profiles"
Want to create your own custom profiles? Thought up a mix-in that's not currently in the Funtoo profiles? Have an overlay with profiles and want to make it easy for people to use them? Well you've come to the right place. This article will show you how to easily add you own profiles. No more ugly hacking of parent files and other nonsense. Once you follow this guide, not only will portage easily recognize your profiles, they will also show up in eselect right along with the ones from the main tree.
Rules to follow
- What your system need:
- The version of eselect that supports Funtoo profiles (already integrated into Funtoo Linux)
- What your overlay need:
- Directory
<overlay_name>/profiles
: store your profiles in it. - File
<overlay_name>/profiles/repo_name
: store the name of your overlay - File
<overlay_name>/profiles/profiles.eselect.desc
: seeprofiles.eselect.example
in your Funtoo portage tree for instruction. - If you're creating profiles of types arch, build, flavor, or mix-ins, your profile must be inside a directory with same name, such as
<overlay_name>/profiles/<profile_name>/flavor/<flavor_name>
,<overlay_name>/profiles/<profile_name>/mix-ins/<mix-ins_name>
- Directory
Currently, NoMix (see profiles.eselect.example
in the Funtoo portage tree) is only supported for profiles in the same tree.
Also:
profile-formats = portage-2set in
metadata/layout.conf
in order for portage to interpret the <repo_name>:<profile>
syntax.
An Example
- For our example, we will create a local overlay called fake_overlay. Then, create a profile called fake_profile. Finally, create a 'mix-ins' profile called fake_mix-ins:
- Set the
dummy
USE flag globally for fake_mix-ins - Set the
yummy
USE flag onsys-apps/not-exist
for fake_mix-ins
- Set the
We will then add this profile to eselect so it's visible when running:
root # eselect profile
Creating the profile
Step 1
We will use ${FAKE_OVERLAY}
as the path to fake_overlay.These instructions assume the overlay exists.
If you haven't set a name for your overlay, do that first:
root # echo "fake_overlay" > ${FAKE_OVERLAY}/profiles/repo_name
Step 2
Next lets create a directory to store our profile. Since we're creating a 'mix-ins' profile, we need to make sure our profile is inside a 'mix-ins' subdirectory. This is a requirement in order to ensure that the profile will show up in eselect. If your not planning on using eselect then there's no requirement to use 'mix-ins'
root # install -d ${FAKE_OVERLAY}/profiles/fake_profile/mix-ins/fake_pro
Now that we have a directory for our profile, lets go ahead and add our settings. Global USE settings go in make.defaults
, package specific USE settings go in package.use
:
root # cd ${FAKE_OVERLAY}/profiles/fake_profile/mix-ins/fake_pro root # echo 'USE="$USE dummy"' >> make.defaults root # echo 'sys-apps/not-exist yummy' >> package.use
No matter if your using funtoo or gentoo, profile settings all work the same. For more information please check the portage man page.
Adding to eselect
eselect reads from the file profiles.eselect.desc
in your profiles directory.
Format is:
Type Name Status NoMix
For more information about this Format, Please look in /usr/portage/profiles/profiles.eselect.example
root # echo 'mix-ins fake_profile/mix-ins/fake_pro testing' >> ${FAKE_OVERLAY}/profiles/profiles.eselect.desc
Watch the result:
root # eselect profile list