Difference between revisions of "Creating Your Own Overlay"

From Funtoo
Jump to navigation Jump to search
m (more details)
m (more details)
Line 16: Line 16:
}}  
}}  


Insert portage structure category & package directories.  For example i want to fix compiz fusion to include an old ebuild of the 0.8.8 series, i would mkdir -p /var/overlay/local/x11-wm/compiz-fusion then copy the ebuild i found online to the directory.  {{f|/var/overlay/local/x11-wm/compiz-fusion/compiz-fusion-0.8.8.ebuild}} is where the ebuild would sit.
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.  {{f|/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.  {{c|cp apparmor-2.8.4.ebuild apparmor-2.9.2.ebuild}} then run the ebuild manifest file.


{{console|body=###i## mkdir -p /var/overlay/local/cat-egory/package
{{console|body=###i## mkdir -p /var/overlay/local/cat-egory/package
###i## mv package.ebuild /var/overlay/local/cat-egory/package/package.ebuild}}
###i## mv package-oldversion.ebuild /var/overlay/local/cat-egory/package/package-oldversion.ebuild}}
###i## cp /var/overlay/local/cat-egory/package/package-oldversion.ebuild /var/overlay/local/cat-egory/package/package-newversion.ebuild
###i## ebuild *.ebuild manifest}}


Add your overlay to make.conf:
Add your overlay to make.conf:
Line 26: Line 28:
}}  
}}  


{{warning|below not finished}}
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.
mv Manifest /home/overlays/local/cat-egory/package/
cp package-version.ebuild package-newversion.ebuild
wget package-newversion.tar.gz -O /usr/portage/distfiles/package-newversion.tar.bz2
ebuild *.ebuild manifest
   
   
to git up your repository to push to github:
=== GIT ===
make ssh keys and upload them to github or else entering your password will get very old very quick.
make ssh keys and upload them to github or else entering your password will get very old very quick.
cd /home/overlays/local
 
git init
{{console|body=###i## cd /var/overlay/local
git add .
###i## git init
git commit -m 'First commit'
###i## git add .
git remote add origin git@github.com:666threesixes666/tripsix.git
###i## git commit -m 'First commit'
git remote set-url origin git@github.com:666threesixes666/tripsix.git
###i## git remote add origin git@github.com:666threesixes666/tripsix.git
git remote -v
###i## git remote set-url origin git@github.com:666threesixes666/tripsix.git
git push origin master
###i## git remote -v
###i## git push origin master}}
   
   
#subsequent updates
If flaws are discovered in your ebuild, you can repair them, and add ebuilds patches or other files with this command:
git add . && git commit -m 'updates' && git push origin master
{{console|body=###i## cd /var/overlay/local
###i## git add . && git commit -m 'updates' && git push origin master}}

Revision as of 02:01, May 3, 2015

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

   Warning

page is incomplete, yell @ Threesixes (talk) in irc to finish it. moving it over from forums because it's completely unreadable there.

root # mkdir /var/overlay

Change the /var/overlay user and group to your own, everyone has the root user, and root group, so we'll use root for the example, though it should be changed to the primary unprivileged account used to edit the ebuilds. 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 # chown root:root /var/overlay && cd /var/overlay
root # git clone http://git.funtoo.org/skeleton-overlay/ local && cd local
echo "myoverlayname" > /var/overlay/local/profiles/repo_name

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/cat-egory/package
root # mv package-oldversion.ebuild /var/overlay/local/cat-egory/package/package-oldversion.ebuild
      1. i## cp /var/overlay/local/cat-egory/package/package-oldversion.ebuild /var/overlay/local/cat-egory/package/package-newversion.ebuild
      2. i## ebuild *.ebuild manifest}}

Add your overlay to make.conf:

   /etc/portage/make.conf - Insert the local overlay
PORTDIR_OVERLAY="/var/overlay/local"

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

make ssh keys and upload them to github or else entering your password will get very old very quick.

root # cd /var/overlay/local
root # git init
root # git add .
root # git commit -m 'First commit'
root # git remote add origin git@github.com:666threesixes666/tripsix.git
root # git remote set-url origin git@github.com:666threesixes666/tripsix.git
root # git remote -v
root # git push origin master

If flaws are discovered in your ebuild, you can repair them, and add ebuilds patches or other files with this command:

root # cd /var/overlay/local
root # git add . && git commit -m 'updates' && git push origin master