注意:

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Creating Your Own Overlay

From Funtoo
Revision as of 10:45, May 22, 2016 by Oleg (talk | contribs)
Jump to navigation Jump to search

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 from github. Change the repo name from skeleton to your own repo name as you want to see it 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

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.