| Conary terminology Refer to Conary terminology for details on conary. |
Prerequisites
Developing for Foresight Linux is best done on an x86-64 install, because we must build and provide both x86 and x86_64 packages.
Register an rBuilder Online account
Go to rBuilder Online and create a new account.
In the following example, we will assume there is a packager named John Doe whose username is jdoe.
Setup Foresight Linux development contexts
The fl:2-devel context is needed for committing to foresight official repository.
Here is an explanation of conary context.
Install the context
The fl:2-devel context is contained in the foresight-contexts package. It is maintained by foresight developers. Install it with:
sudo conary update foresight-contexts=/foresight.rpath.org@fl:2-devel
NOTE: While we strive to keep an up-to-date package of foresight-contexts, you can always check out the latest development contexts from the Mercurial repository at http://hg.foresightlinux.org/hg/foresight-devel-contexts/
Set up Conary for fl:2-devel
Create and edit your ~/.conaryrc:
name John Doe
contact john.doe@mail.com
user *.rpath.org jdoe jdoespasswordhere
showLabels True # always show full version string
includeConfigFile /etc/foresight/development/conary.conf
Set up rMake for fl:2-devel
Create and edit your ~/.rmakerc file:
strictMode True # not copy host configuration into the chroot
includeConfigFile /etc/foresight/development/rmake.conf
Set up working area
mkdir -p ~/conary/foresight.rpath.org cd ~/conary/foresight.rpath.org cvc context fl:2-devel
This will put into effect all of the options in the fl:2-devel context when commands are run from that directory. As an example, any packages you checkout (cvc checkout <package>) will automatically be set with the fl:2-devel context.
(Optional) Personal repository
If you want to commit to a personal repository, setup a personal repository. And here is what your .conaryrc and .rmakerc would look like.
Switching to QA or devel branch
This step is optional but recommended for most people.
Details: There is some difference between rmake (official foresight packages are all built with rmake) and cvc; rmake builds in a chroot and against fl:2-devel packages, but cvc builds against the host system. So if you use cvc to cook packages (most people do), switching to QA or devel branch can provide a more similar environment to that used by rmake, which is good for your developing and testing.
You are recommended to switch to the QA branch of Foresight (which is quite stable). Or if you are sure, you can switch to devel branch of Foresight 2.x.
Install Development Packages
This step is optional but recommended for most people. But note it is a big download.
Details: If you will use cvc to cook packages (most people do), you need to install the devel components of various libraries in order to compile things.
Choose the command below that matches the desktop that you are using (if in doubt, use the first one).
sudo conary update --config 'excludeTroves []' group-gnome-dist-devel # for GNOME edition
sudo conary update --config 'excludeTroves []' group-kde-dist-devel # for KDE edition
sudo conary update --config 'excludeTroves []' group-xfce-dist-devel # for XFCE edition
It should be specified that to create a personal repository, one has to create a "Product" on rBuilder. I have been looking everywhere for "Create Repository" for quite a while before I desperately clicked on "creating a new product"...
TODO:
Need to add info how to make another context on a folder to build like svn versions. If you build stable and unstable of something.
So how can one add to the .conaryrc and .rmakerc files to allow for packages to be placed in their person repository? And what would the recommended directory structure look like including the setting of the context?