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. |