Paludis, the Other Package Mangler



This document explains the concept known to Paludis as a 'set', and describes the standard internal sets and how to create new sets.

Formal Set Description

Internally, a set is a name with an associated dependency-style specification. In most cases the dependency specification will be an 'all-of' collection of package dependencies, although this is not a hard restriction.

There are multiple origins for sets:

Important: a set is a named collecion of dependency specifications, not a collection of packages.

User Defined Sets

The PaludisEnvironment environment class allows user defined package sets via text files. These should be named setname.conf and placed in confdir/sets/, where confdir is the configuration directory in which use.conf et al. reside. The format is as follows:

Most users will only have use for * lines.

In addition, dynamic sets are possible. These should use a .bash extension instead of .conf, and when executed should output what would be valid content for a .conf set.

Ebuild Repositories Defined Sets

Ebuild format repositories can supply their own sets. The system and security sets are defined programmatically; other sets are defined by a file named sets/setname.conf, which should be in the format described for user defined sets above.

Using Sets

Sets can currently be used as targets for paludis --query, paludis --install and paludis --uninstall. They can also be used as the specification column in the use.conf, keywords.conf, licenses.conf, package_mask.conf and package_unmask.conf.