Difference between revisions of "Creating Your Own Overlay"

From Funtoo
Jump to navigation Jump to search
(the next steps after creating the overlay were missing)
(changes for FL-5273)
Line 35: Line 35:
This would be starting point for your own overlay. You are ready to add new ebuilds that are not present in portage tree or fix the ebuilds from portage tree you are not satisfied with, updating old packages or removing newer package versions.
This would be starting point for your own overlay. You are ready to add new ebuilds that are not present in portage tree or fix the ebuilds from portage tree you are not satisfied with, updating old packages or removing newer package versions.


To add an overlay, add the catalog/package hierarchy to  /var/git/overlay/myoverlayname. For example, for an updated version of the package net-misc/autossh not currently in the repository, create the directory net-misc under  /var/git/overlay/myoverlayname and place the autossh directory under it. In this directory, your ebuild must have a proper digest created. Use the command ebuild /path/to/ebuild digest.
For example, for an updated version of the package <code>net-misc/autossh</code> not currently in the repository, create the directory <code>net-misc</code> under  <code>/var/git/overlay/myoverlayname</code> and place the <code>autossh</code> directory under it. In this directory, your ebuild must have a proper digest created. Use the command ebuild /path/to/ebuild digest.
 
{{console|body=
###i## install -d /var/git/overlay/myoverlayname/net-misc/autossh
###i## cd /var/git/overlay/myoverlayname/net-misc/autossh
###i## ebuild autossh-1.2.3.ebuild digest
}}
Above examples shows the basic setup for an ebuild. Notice, a category <code>net-misc</code>, is where autossh belongs to. By default the category cannot be created with an arbitrary names. The categories are strictly defined in the profiles. If wished, custom category can be added via <code>/etc/portage/categories</code>. Follow <code>man 5 portage</code> for details.
{{note|{{c|equery}} may print this warning on execution:
{{note|{{c|equery}} may print this warning on execution:
{{console|body=
{{console|body=

Revision as of 02:33, June 21, 2018

This page intends to get your local overlay going.

   Note

With current versions of app-admin/ego the directory /etc/portage/repos.conf/ is no longer a symbolic link, therefore old workarounds are not needed anymore.

Creating the overlay

We will use /var/git/overlay as primary location directory for the overlay. The location can be anywhere on your system, below is an example location tied with /var/git/, is where regular tree located too.

root # mkdir /var/git/overlay
   Important

Do not store your overlay inside of /var/git/meta-repo. If you do it will get erased when you run ego sync.

Clone the skeleton overlay from github. Change the repository's name from skeleton to a name as it will appear when emerging. Here we use myoverlayname as an example, choose your name accordingly.

root # cd /var/git/overlay
root # git clone  https://github.com/funtoo/skeleton-overlay.git myoverlayname

Configure the overlay

We will enable portage settings required for the overlay to be functional.

root # echo "myoverlayname" > /var/git/overlay/myoverlayname/profiles/repo_name


   /etc/portage/repos.conf/myoverlayname.conf - Add your overlay to portage
[myoverlayname]
location = /var/git/overlay/myoverlayname
auto-sync = no
priority = 10
   Tip

The priority key is needed to ensure that your overlay has higher priority to the kit's overlays, which are default priority 1

This would be starting point for your own overlay. You are ready to add new ebuilds that are not present in portage tree or fix the ebuilds from portage tree you are not satisfied with, updating old packages or removing newer package versions.

For example, for an updated version of the package net-misc/autossh not currently in the repository, create the directory net-misc under /var/git/overlay/myoverlayname and place the autossh directory under it. In this directory, your ebuild must have a proper digest created. Use the command ebuild /path/to/ebuild digest.

root # install -d /var/git/overlay/myoverlayname/net-misc/autossh
root # cd /var/git/overlay/myoverlayname/net-misc/autossh
root # ebuild autossh-1.2.3.ebuild digest

Above examples shows the basic setup for an ebuild. Notice, a category net-misc, is where autossh belongs to. By default the category cannot be created with an arbitrary names. The categories are strictly defined in the profiles. If wished, custom category can be added via /etc/portage/categories. Follow man 5 portage for details.

   Note

equery may print this warning on execution:

user $ equery u gcc
Unavailable repository 'gentoo' referenced by masters entry in '/var/git/myoverlayname/metadata/layout.conf'
...

This is a known equery bug, but should not cause any adverse effects.