Added by Paul Cutler, last edited by Jesse Zhang on May 28, 2010  (view change) show comment

Labels:

Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.

Go to proper working space

It's recommended that you first do the packaging for you personal repository. So it can receive some testing before committing into foresight.

cd ~/conary/jdoe

Or if you are sure you will commit to foresight's repository,

cd ~/conary/foresight.rpath.org/

Create your package

cvc newpkg packagename --template foresight
Package naming scheme

Packages should follow upstream naming.

Write your recipe file. For more information on writing recipes, see https://wiki.rpath.com/wiki/Conary:Recipe

Recipe templates are found on your local system in /etc/conary/recipeTemplates/. If you want to use one of the templates to help get your recipe started, just substitute "foresight" with the template that you want to use.

Cook your recipe

cvc cook packagename.recipe

This will create a changeset (*.ccs) file that can be installed on your computer.

Test your new package locally on your computer:

sudo conary update packagename.ccs

If this package installs and is able to be used without error, the package source can be committed.

Committing source

To commit a package you have created to the official Foresight repository, you will need developer access to Foresight's repository. For more information on becoming an official developer, please see Becoming a developer.

To commit the source, run the following command from within the package directory:

cvc ci -m "some message regarding the commit"

Try to use a descriptive message about the commit.

Build binary package using rMake

rmake build --context fl:2-devel packagename{{x86,x86_64}}

In the above, packagename{{x86,x86_64}} is expanded by the shell into

rmake build --context fl:2-devel packagename{x86} packagename{x86_64}

which ensures that the package is built for both architechtures.

This process (rmake build) was often referred to as 'mook' (a portmanteau – some would say bastardization – of the words 'rmake' and 'cook') in the Foresight world. In keeping with the cooking terminology, 'bake' is now preferred as a better alternative.

Start the rmake service
If the rMake service is not available, start it with:
sudo service rmake start
What is happening now?
Running the rMake command can take a very long time as rMake installs the packages that are needed into a CHROOT environment and builds the package for you.

You can press 'q' to break this command. This does not end the build process! Please consult "man rmake" for details. If you break the command you can review in the logs with:

rmake q --logs rMAKE_BUILD_JOB_ID" (the number in [ ] )

After the package has been built in rMake, commit the binary:

rmake commit rMAKE_SUCESSFULL_BUILD_JOB_ID

Building and committing in one step is accomplished by using

rmake build --commit --context fl:2-devel packagename{x86{,_64}}

WARNING: Do not commit x86 flavors if the package you are building/committing has not been built for x86_64 as well.

If you are on a 32bit system and have verified that the package (*.ccs) works, then you can add an issue to FITS and have another developer who is running 64bit to run the build.