The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Creating Your Own Overlay
This page intends to get your local overlay going, show how to revision bump a package.
We will use /var/overlay as primary location directory. This directory can be located anywhere, below is an example location.
root # mkdir /var/overlay
Clone the skeleton overlay from github. Change the repository's name from skeleton to a name as it will appear when emerging.
root # cd /var/overlay root # git clone http://git.funtoo.org/skeleton-overlay/ local && cd local root # echo "myoverlayname" > /var/overlay/local/profiles/repo_name root # echo "masters = gentoo" >> /var/overlay/local/metadata/layout.conf
/etc/portage/repos.conf/local.conf
- Add your overlay to portage[myoverlayname] location = /var/overlay/local masters = gentoo auto-sync = no priority = 10
The priority
key is needed to ensure, that your overlay has higher priority as the kit's overlays, which are default priority 1
Insert portage structure category & package directories. For example, I want to fix apparmor to include the very latest source, you would mkdir -p /var/overlay/local/sys-apps/apparmor
then copy the old ebuild you found online (or on your computer) to the directory. /var/overlay/local/sys-apps/apparmor/apparmor-2.8.4.ebuild
is where the old ebuild would sit. Copy it to the latest upstream version number. cp apparmor-2.8.4.ebuild apparmor-2.9.2.ebuild
then run the ebuild manifest file.
root # mkdir -p /var/overlay/local/app-category/package-name root # mv package-oldversion.ebuild /var/overlay/local/app-category/package-name/package-oldversion.ebuild root # cp /var/overlay/local/app-category/package-name/package-oldversion.ebuild /var/overlay/local/app-category/package-name/package-newversion.ebuild root # ebuild *.ebuild manifest
for init files, patches etc:
example/var/overlay/local/sys-apps/apparmor/files/apparmor-init
root # mkdir /var/overlay/local/app-category/package-name/files root # nano /var/overlay/local/app-category/package-name/files/package-init
You're ready to emerge the new version, you don't need to sync, you can make minor changes, then emerge, and if it breaks again you can make more minor changes, and emerge again.