Building Linux Software with Conary
This paper describes best practices in Conary packaging: writing recipes that take advantage of Conary features; avoiding redundancy with recipe inheritance and design; implementing release management using branches, shadows, labels, redirects, and flavors; and designing and writing dynamic tag handlers. It describes how Conary policy prevents common packaging errors. It provides examples from our rpath Linux distribution, illustrating the design principles of the Conary build process. It then describes the steps needed to create a new distribution based on the rpath Linux distribution, using the distributed branch and shadow features of Conary.
Conary is a distributed software management system for Linux distributions. Based on extensive experience developing Linux distributions and package management tools, it replaces traditional package management solutions (such as RPM and dpkg) with one designed to enable loose collaboration across the Internet. It enables sets of distributed and loosely connected repositories to define the components which are installed on a Linux system. Rather than having a full distribution come from a single vendor, it allows administrators and developers to branch a distribution, keeping the pieces which fit their environment while grabbing components from other repositories across the Internet.
If you do not have a basic working knowledge of Conary terminology and design, you may want to read the paper Repository-Based System Management Using Conary, which introduces Conary's design and vocabulary in greater detail. Terms called out in boldface in this paper without an explicit definition are defined in that overview.