Package and Set Dependency Specifications
Dependency specifications can look like:
set: A simple set name. Only supported where a named set makes sense.pkg: A simple package name. Not supported in configuration files, and only supported where Paludis can safely disambiguate this intocat/pkg.cat/pkg: A simple package name with explicit category. This may be followed by suffixes, as described below.=cat/pkg-1.23: A simple package name with an explicit category, package and version. Operators other than=are available, described below. This may be followed by suffixes.
In some places, either or both of cat and pkg may be *, which matches any
category or package. This is not permitted where it would not make sense. To match any package in any category, use
*/*.
Suffixes
The cat/pkg and =cat/pkg-1.23 forms may be followed by zero or more optional suffixes, in
the following order:
:slot: Match only in that slot.::repo->repo: Repository requirements, described below.::something: like::->something, for all legal values of something.[use]and[-use]: Match only if the named USE flag is enabled / disabled for this package. May be specified multiple times with different USE flag names.[=1.23]: Match a particular version. Any operator described below can be used. May be extended to ranged dependencies, using either[=1.23|=1.24|=1.25]for an or dependency or[>=1.2&<2]for an and dependency.
Repository requirements are in the form to, from-> or ::from->to. The
from may only be a repository name, and matches packages originally from that repository (so
*/*::myrepo-> finds installed packages that originated in myrepo. Valid forms for
to are as follows:
repo: currently in this repository. Note that an installed package is no longer 'in' the repository whence it came; use a from specification for that.repo?: could be installed torepo.repo??: could be installed torepo, ignoring masks./path: installed at root/path(typically/)./path?: could be installed to some installed repository with root path/path./path??: could be installed to some installed repository with root path/path, ignoring masks.
Operators
The following operators are recognised:
=- Exactly equal to.
<=- Less than or equal to.
<- Strictly less than.
>=- Greater than or equal to.
>- Strictly greater than.
~- Equal to, ignoring the package revision. If a package revision is specified, in addition the package must be of greater than or equal to this revision.
=*- Starting with this string. The asterisk comes after the version part (
=cat/pkg-1.2*orcat/pkg[=1.2*]). This operator should be avoided in favour of ranged and slot dependencies. ~>- Greater than or equal to the version, and strictly less than the version with its one-before-least-significant
digit part incremented, and its least significant digit part discarded. For example,
~>1.2.3means>=1.2.3and<1.3.
