NAME
comparison - comparison statements for ALPM based packages.
DESCRIPTION
The comparison format is a version comparison format, that is used for representing version comparison statements for ALPM based packages in a composite comparison expression. This format is used in build scripts or file formats for package metadata (e.g. in PKGBUILD or PKGINFO) to describe version bounds for a package relation.
A comparison statement uses one of the following comparison operators to specify a version bound relation:
<
(less than)<=
(less than or equal to)=
(equal to)>=
(greater than or equal to)>
(greater than)
Composite comparison expressions
Composite comparison expressions consist of an alpm-package-name, directly followed by a comparison operator, directly followed by an alpm-package-version.
Matching comparison expressions
Name matching is performed based on a full string match using the alpm-package-name component of the composite comparison expression.
Version comparison is performed based on components of a composite version string (see e.g. alpm-epoch, alpm-pkgver and alpm-pkgrel). As alpm-package-version offers several forms, this allows for matching a variety of scenarios.
When providing the full or full with epoch form of the alpm-package-version format, it matches exactly one specific release of a package version. When providing the minimal or minimal with epoch form of the alpm-package-version format, it matches any release of a package version.
Depending on comparison operator, the given match towards alpm-package-name and alpm-package-version is narrow (i.e. =
), wide with lower bound (i.e. >
, >=
) or wide with upper bound (i.e. <
, <=
).
EXAMPLES
The below composite comparison expressions can be matched by a package named example
in specific versions:
"example<1.0.0"
A version less than '1.0.0' (e.g. '0.8.0-1').
"example<=1.0.0"
A version less than or equal to '1.0.0' (e.g. '0.8.0-1' or '1.0.0-3').
"example<=1.0.0-1"
A version less than or equal to '1.0.0-1' (e.g. '0.8.0-1' or '1.0.0-1', but '1.0.0-2' does not work).
"example=1.0.0"
Any version '1.0.0' (e.g. '1.0.0-1' or '1.0.0-2', etc.).
"example=1.0.0-1"
The version '1.0.0-1'.
"example=1:1.0.0-1"
The version '1:1.0.0-1'.
"example>=1.0.0"
A version greater than or equal to '1.0.0' (e.g. '1.0.0-1' or '1.1.0-1').
"example>1.0.0"
A version greater than '1.0.0' (e.g. '1.1.0-1' or '1:1.0.0-1').
SEE ALSO
BUILDINFO(5), PKGBUILD(5), PKGINFO(5), alpm-epoch(7), alpm-package-name(7), alpm-package-relation(7), alpm-package-version(7), alpm-pkgrel(7), alpm-pkgver(7), vercmp(8)