Conary packaging is easy, but there are times where you hit some harder things and you really need to hit the docs. There are plenty of docs now on conary, and a few clicks in a web browser generally can get you what you need. However, there is a very cool command line interface to the packaging docs call “cvc explain”. I keep running into people that haven’t seen it, so lets get the word out!
You can run “cvc explain [method]” to get the documentation for that method. Here is an example:
$ cvc explain DanglingSymlinks
Conary API Documentation: PackageRecipe.DanglingSymlinks
NAME
====
r.DanglingSymlinks() – Disallow dangling symbolic links
SYNOPSIS
========
r.DanglingSymlinks([filterexp] || [exceptions=filterexp)
DESCRIPTION
===========
The r.DanglingSymlinks() policy enforces the absence of dangling
symbolic links; that is, symbolic links pointing to targets which no
longer exist.
If you know that a dangling symbolic link created by your package
is fulfilled by another package on which your package depends,
you may set up an exception for that file.
EXAMPLES
========
r.DanglingSymlinks(exceptions=’%(htconfdir)s/run’)
The %(htconfdir)s/run file is a symlink that is intentionally
left dangling within this package, because we know that it will
be satisfied by runtime dependencies at installation time.
Something I forgot to point out, if you don’t know what method you need you can run cvc explain without arguments to get a list of classes. And if you run cvc explain ClassName it lists methods in those classes. For example:
cvc explain PackageRecipe
That will list all the methods available in that class as well as give some handy examples of a recipe using that class.