Documentation ¶
Overview ¶
Package alpm works with parts of Arch Linux packages.
Index ¶
Constants ¶
const PackageGlob = "-*.pkg.tar*"
PackageGlob is a glob that should only find packages.
const PackageRegex = `^([a-zA-Z.0-9_+-]+)-(\d.*-\d+)-(.*)\.pkg\.tar\..*$`
PackageRegex is a regex that matches MOST well-named packages.
The following groups are available:
Group 0 is the entire match Group 1 is the name Group 2 is the version-release Group 3 is the arch
Variables ¶
var DatabaseExtensions = []string{
"db.tar",
"db.tar.zst",
"db.tar.xz",
"db.tar.gz",
"db.tar.bz2",
}
DatabaseExtensions is a list of filename extensions that should only match for valid databases.
var PackageExtensions = []string{
"pkg.tar",
"pkg.tar.zst",
"pkg.tar.xz",
"pkg.tar.gz",
"pkg.tar.bz2",
}
PackageExtensions is a list of filename extensions that should only match for packages.
Functions ¶
func HasDatabaseFormat ¶
HasDatabaseFormat returns true if the filename matches a pacman package format that we can do anything with.
Currently, only the following formats are supported:
.db.tar.gz .db.tar.xz .db.tar.gz2 .db.tar.zst
func HasPackageFormat ¶
HasPackageFormat returns true if the filename matches a pacman package format that we can do anything with.
Currently, only the following formats are supported:
.pkg.tar .pkg.tar.xz .pkg.tar.gz .pkg.tar.bz2 .pkg.tar.zst
func VerCmp ¶
VerCmp compares two version strings in a way mostly compatible to the Arch Linux vercmp utility.
Caveat: there is currently one break in compatibility: floating point releases are rounded down instead of being maintained. Please just don't.
The following is from the vercmp man page:
vercmp is used to determine the relationship between two given version numbers. It outputs values as follows: < 0 : if ver1 < ver2 = 0 : if ver1 == ver2 > 0 : if ver1 > ver2 Version comparison operates as follows: Alphanumeric: 1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0 < 1.0.a < 1.0.1 Numeric: 1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0 Additionally, version strings can have an epoch value defined that will overrule any version comparison (unless the epoch values are equal). This is specified in an epoch:version-rel format. For example, 2:1.0-1 is always greater than 1:3.6-1. Keep in mind that the pkgrel is only compared if it is available on both versions given to this tool. For example, comparing 1.5-1 and 1.5 will yield 0; comparing 1.5-1 and 1.5-2 will yield < 0 as expected. This is mainly for supporting versioned dependencies that do not include the pkgrel.
Types ¶
This section is empty.