.TH "PKGINFO" 5 .SH "NAME" .PP PKGINFO \- Information on ALPM based packages (version 2)\. .SH "DESCRIPTION" .PP The \fBPKGINFO\fP format is a textual format that describes package metadata\. Such files are located at the root of ALPM packages and are named \fB\.PKGINFO\fP\. They are used e\.g\. by package managers to evaluate and present the context for a package within its ecosystem\. Use\-cases include the representation of common metadata and the relation to other packages\. .PP The \fBPKGINFO\fP format exists in multiple versions\. The information in this document is for version 2, which is the current version and has been introduced with the release of pacman 6\.1\.0 on 2024\-03\-04\. .SS "General Format" .PP A \fBPKGINFO\fP file consists of a series of lines, each providing information on an aspect of a package\. Lines starting with a '#' sign are comments and are always ignored\. Leading whitespace is always ignored\. .PP Unless noted otherwise, the information contained in a \fBPKGINFO\fP file is considered to be covered by the set of the 95 \fBprintable ASCII characters\fP[1]\. .SS "Changes since the last version" .PP The new keyword \fBxdata\fP has been added to track extra data for a package\. .SS "Keywords" .PP Each line encodes information that represents one keyword assignment\. All keyword assignments consist of a key from the following list immediately followed by a whitespace, an '=' sign, another whitespace and a value\. .PP By default, exactly one keyword assignment must be present per keyword in a \fBPKGINFO\fP\. As exception to this rule, the keywords \fBlicense\fP, \fBreplaces\fP, \fBgroup\fP, \fBconflict\fP, \fBprovides\fP, \fBbackup\fP, \fBdepend\fP, \fBoptdepend\fP, \fBmakedepend\fP and \fBcheckdepend\fP may be provided zero or more times\. As additional exception, the keyword \fBxdata\fP is provided one or more times\. .SB "pkgname" .PP The name of the package\. The value is an \fBalpm\-package\-name\fP (e\.g\. `\f[CR]example\fP`)\. .SB "pkgbase" .PP The base name of the package\. This keyword reflects the name of the sources from which the package is built\. If the sources of the package are used to build a single package, the value is the same as that of \fBpkgname\fP\. If the sources of the package are used to build several packages, the value may differ from that of \fBpkgname\fP (see \fBPKGBUILD\fP \fBPACKAGE SPLITTING\fP for further information)\. The value is an \fBalpm\-package\-name\fP (e\.g\. `\f[CR]example\fP`)\. .SB "xdata" .PP The e\fIx\fPtra \fIdata\fP associated with the package\. This keyword must be assigned once to define a specific value, but may be provided several times after that to provide further extra data\. The value is a UTF\-8\-encoded string, that represents another key\-value pair, delimited by a '=' sign (e\.g\. `\f[CR]key=value\fP`)\. .PP A \fBPKGINFO\fP must contain an \fBxdata\fP keyword assignment that defines a \fBpkgtype\fP assignment in its value (e\.g\. `\f[CR]pkgtype=pkg\fP`)\. The valid \fBpkgtype\fP values are `\f[CR]debug\fP` (for debug packages), `\f[CR]pkg\fP` (for single packages), `\f[CR]src\fP` (for source packages) and `\f[CR]split\fP` (for split packages)\. .PP Additional \fBxdata\fP keyword assignments may be provided following the general rules around formatting of its values\. .SB "pkgver" .PP The full version of the package\. Note, that this is not to be confused with \fBalpm\-pkgver\fP, which only represents a subset of this keyword! The value is an \fBalpm\-package\-version\fP, either in \fIfull\fP or in \fIfull with epoch\fP form (e\.g\. `\f[CR]1\.0\.0\-1\fP` or `\f[CR]1:1\.0\.0\-1\fP`, respectively)\. .SB "pkgdesc" .PP The description of the package\. The value is a UTF\-8 string, zero or more characters long (e\.g\. `\f[CR]A project used for something\fP`)\. No specific rules about the value exist, but it is suggested to be "short" and to not contain the package name (see \fBpkgname\fP)\. .SB "url" .PP The URL for the project of the package\. The value is a valid URL or an empty string (e\.g\. `\f[CR]https://example\.org\fP`)\. .SB "builddate" .PP The date at which the build of the package started\. The value must be numeric and must represent the seconds since the Epoch, aka\. 'Unix time' (e\.g\. `\f[CR]1729181726\fP`)\. .SB "packager" .PP The User ID of the entity that built the package\. The value is meant to be used for identity lookups and represents an \fBOpenPGP User ID\fP[2]\. As such, the value is a UTF\-8\-encoded string, that is conventionally composed of a name and an e\-mail address, which aligns with the format described in \fBRFC 2822\fP[3] (e\.g\. `\f[CR]John Doe \fP`)\. .SB "size" .PP The size of the (uncompressed and unpacked) package contents in bytes\. The value is a non\-negative integer representing the absolute size of the contents of the package, with multiple hardlinked files counted only once (e\.g\. `\f[CR]181849963\fP`)\. .SB "arch" .PP The architecture of the package (see \fBalpm\-architecture\fP for further information)\. The value must be covered by the set of alphanumeric characters and '_' (e\.g\. `\f[CR]x86_64\fP` or `\f[CR]any\fP`)\. .SB "license" .PP A license that applies for the package\. This keyword may be assigned zero or more times\. The value represents a license identifier, which is a string of non\-zero length (e\.g\. `\f[CR]GPL\fP`)\. Although no specific restrictions are enforced for the value aside from its length, it is highly recommended to rely on SPDX license expressions (e\.g\. `\f[CR]GPL\-3\.0\-or\-later\fP` or `\f[CR]Apache\-2\.0 OR MIT\fP`)\. See \fBSPDX License List\fP[4] for further information\. .SB "replaces" .PP Another \fIvirtual component\fP or package, that the package replaces upon installation\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBreplacement\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SB "group" .PP An arbitrary string, that denotes a distribution\-wide group the package is in\. Groups are made use of e\.g\. by package managers to group packages and allow to bulk install them, or by other software to display information on these related packages\. This keyword may be assigned zero or more times\. The value is represented by a UTF\-8 string\. Although it is possible to use a UTF\-8 string, it is highly recommended to rely on the \fBpkgname\fP format for the value instead, as package managers may use \fBgroup\fP to install an entire group of packages\. .SB "conflict" .PP Another \fIvirtual component\fP or package, that the package conflicts with\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBconflict\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SB "provides" .PP Another \fIvirtual component\fP or package, that the package provides\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBprovision\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SB "backup" .PP A relative file path of a file in the package, that denotes a file for the package manager to keep backups for in case it changes or is deleted during a package update action (see \fBpacman\fP '\.pacnew' and '\.pacsave' files)\. This keyword may be assigned zero or more times\. The value must be a valid relative Unix file path (e\.g\. `\f[CR]etc/package\.conf\fP`)\. .SB "depend" .PP A run\-time dependency of the package (\fIvirtual component\fP or package)\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBrun\-time dependency\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SB "optdepend" .PP An optional dependency of the package (\fIvirtual component\fP or package)\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBoptional dependency\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example: this is a description\fP`)\. .SB "makedepend" .PP A build time dependency of the package (\fIvirtual component\fP or package)\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBbuild dependency\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SB "checkdepend" .PP A dependency for running tests of the package's upstream project\. This keyword may be assigned zero or more times\. The value is an \fBalpm\-package\-relation\fP of type \fBtest dependency\fP (e\.g\. `\f[CR]example\fP` or `\f[CR]example=1\.0\.0\fP`)\. .SH "EXAMPLES" .RS .PP .nf pkgname = example pkgbase = example xdata = pkgtype=pkg pkgver = 1:1\.0\.0\-1 pkgdesc = A project that does something url = https://example\.org builddate = 1729181726 packager = John Doe size = 181849963 arch = any license = GPL\-3\.0\-or\-later license = LGPL\-3\.0\-or\-later replaces = other\-package>0\.9\.0\-3 group = package\-group group = other\-package\-group conflict = conflicting\-package<1\.0\.0 conflict = other\-conflicting\-package<1\.0\.0 provides = some\-component provides = some\-other\-component=1:1\.0\.0\-1 backup = etc/example/config\.toml backup = etc/example/other\-config\.txt depend = glibc depend = gcc\-libs optdepend = python: for special\-python\-script\.py optdepend = ruby: for special\-ruby\-script\.rb makedepend = cmake makedepend = python\-sphinx checkdepend = extra\-test\-tool checkdepend = other\-extra\-test\-tool .fi .RE .SH "SEE ALSO" .PP \fBalpm\-pkginfo\fP(1), \fBPKGBUILD\fP(5), \fBmakepkg\.conf\fP(5), \fBalpm\-architecture\fP(7), \fBalpm\-comparison\fP(7), \fBalpm\-package\-name\fP(7), \fBalpm\-package\-relation\fP(7), \fBalpm\-package\-version\fP(7), \fBalpm\-pkgver\fP(7), \fBmakepkg\fP(8), \fBpacman\fP(8) .SH "NOTES" .RS .Bl .IP 1. 4 \fBprintable ASCII characters\fP .sp https://en\.wikipedia\.org/wiki/ASCII#Printable_characters .El .Bl .IP 2. 4 \fBOpenPGP User ID\fP .sp https://openpgp\.dev/book/certificates\.html#user\-ids .El .Bl .IP 3. 4 \fBRFC 2822\fP .sp https://www\.rfc\-editor\.org/rfc/rfc2822 .El .Bl .IP 4. 4 \fBSPDX License List\fP .sp https://spdx\.org/licenses/ .El .RE