Note

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

Difference between revisions of "Creating Your Own Overlay"

From Funtoo
Jump to navigation Jump to search
Line 36: Line 36:
###i## nano /var/overlay/local/app-category/package-name/files/package-init}}
###i## nano /var/overlay/local/app-category/package-name/files/package-init}}


Add your overlay to make.conf:
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.
{{file|name=/etc/portage/make.conf|lang=|desc=Insert the local overlay|body=
PORTDIR_OVERLAY="/var/overlay/local"
}}
 
{{important|Using PORTDIR_OVERLAY in make.conf is deprecated. Use repos.conf instead.}}
 
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. Once you're satisfied with the ebuild its time to share your fun goodies.
=== GIT ===
{{note|make [[SSH#Passwordless_Authentication | ssh keys]] and upload them to github or else entering your password will get very old very quick.}}
 
https://github.com/666threesixes666  = my github user account<br />
tripsix = my /var/overlay/local/profiles/repo_name contents
Here you can see a 'tripsix' name. It's an unique name for your repository that portage now will understand where your packages originates from. See above, where we created an overlay layout.
 
 
{{console|body=###i## cd /var/overlay/local
###i## git init
###i## git add .
###i## git commit -m 'First commit'
###i## git remote add origin git@github.com:666threesixes666/tripsix.git
###i## git remote set-url origin git@github.com:666threesixes666/tripsix.git
###i## git remote -v
###i## git push origin master}}
If flaws are discovered in your ebuild, you can repair the ebuild/patches/init files/conf.d files within them and upload them to github by these commands:
{{console|body=###i## cd /var/overlay/local
###i## git add . && git commit -m 'updates' && git push origin master}}
 
 
== Supporting tools ==
 
A number of tools support or integrate with overlays.
 
=== eix ===
 
eix-sync is a wrapper starting emerge --sync (which in turn starts emaint sync --auto) followed by eix-update.  For further details see [[Package:Eix]]
 
{{console|body=###i## emerge app-portage/eix}}
 
After the installation has finished, it is important to update the cache to index all packages on the system. Running following command will update the local eix cache:
 
{{console|body=###i## eix-update}}
 
Alternatively, one can use eix-sync tool from eix itself:
 
{{console|body=###i## eix-sync}}

Revision as of 10:41, May 22, 2016

This page intends to get your local overlay going, show how to revision bump a package, and sync your goodies to github.

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

Change the readme message to what you want to show up on the front page of your repo:

   /var/overlay/local/README.rst - Set the github front page message
This overlay is from so and so funtoo user.  Order a $15/month container today @ funtoo.org

Insert portage structure category & package directories. For example i want to fix apparmor to include the very latest source , i would mkdir -p /var/overlay/local/sys-apps/apparmor then copy the old ebuild i found online (or on my 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.