.TH "SRCINFO" 5 .SH "NAME" .PP SRCINFO \- Information on sources of ALPM based packages\. .SH "DESCRIPTION" .PP The \fBSCRINFO\fP format is a textual format that describes package source metadata\. Such files are named \fB\.SRCINFO\fP and located at the root of source repositories from which ALPM based packages are built\. They are created from \fBPKGBUILD\fP files to allow safe metadata parsing in scenarios where using \fBbash\fP is not an option\. The \fBSRCINFO\fP format is used by applications such as repository management software and custom web frontends to evaluate and present the source information of packages\. .SS "General Format" .PP A \fBSRCINFO\fP file consists of a series of lines, each providing information on an aspect of the sources of one or several packages (see \fBalpm\-split\-package\fP for information on split packages)\. Lines starting with a '#' sign are treated as comments and are always ignored\. Empty lines are always ignored\. Leading whitespace is always ignored\. .PP Unless noted otherwise, the information contained in a \fBSRCINFO\fP file is considered to be covered by the set of the 95 \fBprintable ASCII characters\fP[1]\. .PP The file format distinguishes between section headers introducing specific sections and keyword assignments that can be used in those sections\. Each line encodes information that either represents one section header or one keyword assignment\. .PP The \fBSRCINFO\fP format requires the definition of a single \fBpkgbase\fP and one or more \fBpkgname\fP sections\. While the \fBpkgbase\fP section contains metadata shared by all packages built from a \fBPKGBUILD\fP, the \fBpkgname\fP sections are used to declare package metadata and provide overrides that are specific for each respective package\. .SS "Section headers" .PP All section headers consist of a key, immediately followed by a whitespace, an '=' sign, another whitespace and a value\. .PP The section header for a \fBpkgbase\fP section must use the word 'pkgbase' as key and an \fBalpm\-package\-name\fP as value\. Exactly one such section header must exist in a \fBSRCINFO\fP file at the beginning of the file\. .PP The section header for a \fBpkgname\fP section must use the word 'pkgname' as key and an \fBalpm\-package\-name\fP as value\. At least one such section header must exist in a \fBSRCINFO\fP file (one for each package built from a \fBPKGBUILD\fP), but only after a \fBpkgbase\fP section header\. .SS "Sections" .PP The \fBpkgbase\fP section must at least contain assignments for the \fBpkgver\fP and \fBpkgrel\fP keywords, and may otherwise also contain all other known keyword assignments\. Keyword assignments present in this section also apply to all \fBpkgname\fP sections\. .PP A \fBpkgname\fP section may have zero or more keyword assignments\. It must not contain assignments for the \fBepoch\fP, \fBpkgver\fP, \fBpkgrel\fP, or \fBvalidpgpkeys\fP keywords, nor any keyword assignments representing build or test dependency declarations (see \fBalpm\-package\-relation\fP for details), source declarations (see \fBalpm\-package\-source\fP for details) or checksum declarations (see \fBalpm\-package\-source\-checksum\fP for details)\. Keyword assignments in a \fBpkgname\fP section only apply to the specific package that the section describes\. More specifically, all keyword assignments in a \fBpkgname\fP section are used to unset, extend or override the keyword assignments found in the \fBpkgbase\fP section\. The following rules apply: .RS .Bl .IP \(bu 4 A keyword that has been previously defined in the \fBpkgbase\fP section and may be used in a \fBpkgname\fP section can be .RS .Bl .IP \(bu 4 unset by assigning an empty value to it (e\.g\. the \fBpkgbase\fP section defines `\f[CR]depends = bash\fP` and the \fBpkgname\fP section defines `\f[CR]depends =\fP`), or .El .Bl .IP \(bu 4 overridden by defining it again (e\.g\. the \fBpkgbase\fP section defines `\f[CR]depends = bash\fP` and the \fBpkgname\fP section defines `\f[CR]depends = zsh\fP`)\. .El .RE .El .Bl .IP \(bu 4 All keywords that allow multiple assignments and that may be used in a \fBpkgname\fP section can be extended by first adding all keyword assignments found in the \fBpkgbase\fP section and afterwards adding further keyword assignments in a \fBpkgname\fP section (e\.g\. the \fBpkgbase\fP section defines `\f[CR]depends = bash\fP` and the \fBpkgname\fP section defines `\f[CR]depends = bash\fP` and `\f[CR]depends = bash\-completion\fP`)\. .El .RE .PP Further rules may apply depending on keyword\. .SS "Keywords" .PP All keyword assignments are defined as 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 may be present per keyword in a \fBSRCINFO\fP\. As exception to this rule, the keywords \fBarch\fP, \fBbackup\fP, \fBcheckdepends\fP, \fBconflicts\fP, \fBdepends\fP, \fBgroups\fP, \fBlicense\fP, \fBmakedepends\fP, \fBoptdepends\fP, \fBoptions\fP, \fBprovides\fP, \fBreplaces\fP, as well as the source related keywords \fBnoextract\fP, \fBsource\fP, \fBvalidpgpkeys\fP, \fBb2sums\fP, \fBmd5sums\fP, \fBsha1sums\fP, \fBsha224sums\fP, \fBsha256sums\fP, \fBsha384sums\fP and \fBsha512sums\fP may be provided zero or more times\. .PP By default keyword assignments apply to all targeted \fBalpm\-architectures\fP\. Some keywords may also be provided in architecture\-specific ways by appending an '_' sign, directly followed by an \fBalpm\-architecture\fP (all except `\f[CR]any\fP`) \- see each keyword section for details\. These architecture\-specific keyword assignments only apply to the architecture they target\. .SB "pkgdesc" .PP The description of the package\. This keyword assignment may be provided zero or one times in the \fBpkgbase\fP and/or in each \fBpkgname\fP section\. 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 \fBalpm\-package\-name\fP)\. .SB "pkgver" .PP The pkgver package version component for the package(s) (see \fBalpm\-pkgver\fP for further information on the expected value)\. This keyword assignment must be provided once, exclusively in the \fBpkgbase\fP section\. .PP The value is an \fBalpm\-pkgver\fP (e\.g\. `\f[CR]1\.0\.0\fP` or `\f[CR]1:1\.0\.0\fP`)\. .SB "pkgrel" .PP The pkgrel package version component for the package(s) (see \fBalpm\-pkgrel\fP for further details on the expected value)\. .PP This keyword assignment must be provided once, exclusively in the \fBpkgbase\fP section\. .SB "epoch" .PP The optional epoch package version component for the package(s) (see \fBalpm\-epoch\fP for further details on the expected value)\. .PP This keyword assignment may be provided zero or one time, exclusively in the \fBpkgbase\fP section\. .SB "url" .PP The URL for the project of the package\. This keyword assignment may be provided zero or one times in the \fBpkgbase\fP and/or in each \fBpkgname\fP section\. .PP The value is a valid URL or an empty string (e\.g\. `\f[CR]https://example\.org\fP`)\. .SB "install" .PP The name of an \fBalpm\-install\-scriptlet\fP that is used for pre and post actions when installing, upgrading or uninstalling a package\. This keyword assignment may be provided zero or one times in the \fBpkgbase\fP and/or in each \fBpkgname\fP section\. .PP The value must be a UTF\-8 string, that represents a relative file path (e\.g\. `\f[CR]scriptlet\.install\fP`)\. .SB "changelog" .PP The name of file containing changelog information for a package\. This keyword assignment may be provided zero or one times in the \fBpkgbase\fP and/or in each \fBpkgname\fP section\. .PP The value must be a UTF\-8 string, that represents a relative file path (e\.g\. `\f[CR]pkg\.changelog\fP`)\. .SB "arch" .PP An architecture that applies for a \fBpkgname\fP section\. This keyword assignment may be provided one or more times in the \fBpkgbase\fP and zero or more times in each \fBpkgname\fP section\. .PP The value is an \fBalpm\-architecture\fP (e\.g\. `\f[CR]x86_64\fP` or `\f[CR]any\fP`)\. The following rules apply, if this keyword is used multiple times: .RS .Bl .IP \(bu 4 each value must be unique .El .Bl .IP \(bu 4 if the value `\f[CR]any\fP` is used, no other value can be used alongside it, as it implies that a \fBpkgname\fP may be used \fIon any architecture\fP (which logically excludes being used only on a specific architecture) .El .RE .SB "groups" .PP An arbitrary string, that denotes a distribution\-wide group the package is in (see \fBalpm\-package\-group\fP)\. Groups are used 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\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 \fBalpm\-package\-name\fP format for the value instead, as package managers may use \fBgroups\fP to install an entire group of packages\. .SB "license" .PP A license that applies for the package(s)\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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[5] for further information\. .SB "checkdepends" .PP A dependency for running tests of the package's upstream project\. An architecture\-specific \fBcheckdepends\fP may be specified using a keyword consisting of 'checkdepends', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]checkdepends_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. 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`)\. .SB "makedepends" .PP A build time dependency of the package (\fIvirtual component\fP or package)\. An architecture\-specific \fBmakedepends\fP may be specified using a keyword consisting of 'makedepends', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]makedepends_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. 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 "depends" .PP A run\-time dependency of the package (\fIvirtual component\fP or package)\. An architecture\-specific \fBdepends\fP may be specified using a keyword consisting of 'depends', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]depends_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 "optdepends" .PP An optional dependency of the package (\fIvirtual component\fP or package)\. An architecture\-specific \fBoptdepends\fP may be specified using a keyword consisting of 'optdepends', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]optdepends_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 "provides" .PP Another \fIvirtual component\fP or package, that the package provides\. An architecture\-specific \fBprovides\fP may be specified using a keyword consisting of 'provides', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]provides_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 "conflicts" .PP Another \fIvirtual component\fP or package, that the package conflicts with\. An architecture\-specific \fBconflicts\fP may be specified using a keyword consisting of 'conflicts', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]conflicts_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 "replaces" .PP Another \fIvirtual component\fP or package, that the package replaces upon installation\. An architecture\-specific \fBreplaces\fP may be specified using a keyword consisting of 'replaces', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]replaces_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. 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 "noextract" .PP A local source file name (see \fBalpm\-package\-source\fP) of a file that should not be extracted during package building\. Each value must represent the valid local file name of an existing \fBsource\fP keyword assignment (e\.g\. `\f[CR]source = https://example\.org/project\-1\.0\.0\.tar\.gz\fP` and `\f[CR]noextract = project\-1\.0\.0\.tar\.gz\fP`)\. A file matching the provided filename is \fInot\fP automatically extracted during package building, even if it is a compressed file (e\.g\. `\f[CR]example\.tar\.gz\fP` or `\f[CR]example\.zip\fP`)\. An architecture\-specific \fBnoextract\fP may be specified using a keyword consisting of 'noextract', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]noextract_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. .SB "options" .PP An option used by the package build tool (i\.e\. \fBmakepkg\fP, defaults are defined in \fBOPTIONS\fP of \fBmakepkg\.conf\fP) when building the package\. This keyword assignment may be provided zero or more times either in the \fBpkgbase\fP or in a \fBpkgname\fP section\. .PP The value must be a unique word, optionally prefixed by a single '!', which indicates the negation of the option (e\.g\. `\f[CR]debug\fP` or `\f[CR]!debug\fP`)\. If the keyword assignment is used in a \fBpkgname\fP section, the value of the first occurrence may be empty, which indicates, that for the respective package none of the \fBoptions\fP defined in the \fBpkgbase\fP section apply\. .SB "backup" .PP A relative file path of a file in a given 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 assignment may be provided zero or more times in the \fBpkgbase\fP as well as in each \fBpkgname\fP section\. The value must be a valid relative Unix file path (e\.g\. `\f[CR]etc/package\.conf\fP`)\. .SB "source" .PP A (remote or local) source used in the packaging process of the package(s) (see \fBalpm\-package\-source\fP for further details on the allowed value), that are automatically extracted if they represent compressed files (unless a \fBnoextract\fP value matching the file name exists)\. An architecture\-specific \fBsource\fP may be specified using a keyword consisting of 'source', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]source_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. .SB "validpgpkeys" .PP An \fBOpenPGP fingerprint\fP[2] which may be used for the validation of \fBOpenPGP signatures\fP[3] created for one or more \fBalpm\-package\-sources\fP (i\.e\. a \fBsource\fP keyword assignment)\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. It must be used at least once if .RS .Bl .IP \(bu 4 one \fBalpm\-package\-source\fP value makes use of the `\f[CR]signed\fP` URL fragment .El .Bl .IP \(bu 4 or if there is one \fBalpm\-package\-source\fP ending with `\f[CR]\.sig\fP`, that equals another without that file ending .El .Bl .IP \(bu 4 or if there is one \fBalpm\-package\-source\fP ending with `\f[CR]\.sign\fP`, that matches another without that file ending and all compression algorithm specific file endings (e\.g\. `\f[CR]\.xz\fP` or `\f[CR]\.zst\fP`) removed .El .RE .PP The value is a 40 char long hexadecimal string (e\.g `\f[CR]0123456789abcdef0123456789abcdef01234567\fP`)\. Although possible, it is strongly discouraged to use the non\-unique, legacy \fBOpenPGP Key ID\fP[4] representation, a 16 char long hexadecimal string (e\.g\. `\f[CR]89abcdef01234567\fP`) .SB "md5sums" .PP An \fBMD5\fP[6] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBmd5sums\fP may be specified using a keyword consisting of 'md5sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]md5sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBmd5sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBmd5sums\fP keyword assignments (i\.e\. the first \fBmd5sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "sha1sums" .PP A \fBSHA\-1\fP[7] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBsha1sums\fP may be specified using a keyword consisting of 'sha1sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]sha1sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBsha1sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBsha1sums\fP keyword assignments (i\.e\. the first \fBsha1sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "sha224sums" .PP A \fBSHA\-224\fP[8] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBsha224sums\fP may be specified using a keyword consisting of 'sha224sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]sha224sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBsha224sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBsha224sums\fP keyword assignments (i\.e\. the first \fBsha224sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "sha256sums" .PP A \fBSHA\-256\fP[8] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBsha256sums\fP may be specified using a keyword consisting of 'sha256sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]sha256sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBsha256sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBsha256sums\fP keyword assignments (i\.e\. the first \fBsha256sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "sha384sums" .PP A \fBSHA\-384\fP[8] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBsha384sums\fP may be specified using a keyword consisting of 'sha384sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]sha384sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBsha384sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBsha384sums\fP keyword assignments (i\.e\. the first \fBsha384sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "sha512sums" .PP A \fBSHA\-512\fP[8] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBsha512sums\fP may be specified using a keyword consisting of 'sha512sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]sha512sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBsha512sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBsha512sums\fP keyword assignments (i\.e\. the first \fBsha512sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SB "b2sums" .PP A \fBBLAKE2\fP[9] hash digest of a file provided by name in a \fBsource\fP value, or the special string 'SKIP' (see \fBalpm\-package\-source\-checksum\fP for further details on the allowed value)\. An architecture\-specific \fBb2sums\fP may be specified using a keyword consisting of 'b2sums', directly followed by an '_' sign, directly followed by an \fBalpm\-architecture\fP (all \fBalpm\-architectures\fP except `\f[CR]any\fP` can be used), e\.g\. `\f[CR]b2sums_aarch64\fP`\. .PP This keyword assignment may be provided zero or more times, exclusively in the \fBpkgbase\fP section\. If it is used, the \fBSRCINFO\fP must contain as many \fBb2sums\fP keyword assignments as there are \fBsource\fP keyword assignments (the same applies for the architecture\-specific variant of this keyword)\. The ordering of accompanying \fBsource\fP keyword assignments dictate the ordering of the \fBb2sums\fP keyword assignments (i\.e\. the first \fBb2sums\fP keyword assignment provides data for the first \fBsource\fP keyword assignment, etc\.)\. .SH "EXAMPLES" .SS "Split packages, extending, overriding and unsetting of keywords" .RS .PP .nf pkgbase = example pkgdesc = An example package pkgver = 1\.0\.0 pkgrel = 1 epoch = 1 url = https://example\.org arch = any license = GPL\-3\.0\-or\-later checkdepends = extra\-test\-tool checkdepends = other\-extra\-test\-tool makedepends = cmake makedepends = python\-sphinx depends = glibc depends = gcc\-libs source = https://example\.org/example\-1\.0\.0\.tar\.gz sha512sums = 8b41e1b78ad11521113c52ff182a1b8e0a195754aa527fcd00a411620b46f20ffffb8088ccf85497121ad4499e0845b876f6dd6640088a2f0b2d8a600bdf4c0c b2sums = cb79bf658b69dff0acf721232455a461598dd26ed42047bd0362e7fbd796093145a694c1a6bcdcf5bf7f866d78f009c14bf456be0f944283829a6e33cedf2aef pkgname = example # overrides the pkgdesc for the example package pkgdesc = A project that does something groups = package\-group # extends the license for the example package license = GPL\-3\.0\-or\-later license = LGPL\-3\.0\-or\-later optdepends = python: for special\-python\-script\.py optdepends = example\-docs: for documentation provides = some\-component conflicts = conflicting\-package<1\.0\.0 replaces = other\-package>0\.9\.0\-3 backup = etc/example/config\.toml pkgname = example\-docs # overrides the pkgdesc for the example\-docs package pkgdesc = A project that does something \- documentation # overrides the license for the example\-docs package license = CC\-BY\-SA\-4\.0 # unsets the dependencies for the example\-docs package depends = .fi .RE .PP The above example represents a \fBSRCINFO\fP file that describes two split packages (see \fBalpm\-split\-package\fP for more details)\. Both \fBpkgname\fP sections override the `\f[CR]pkgdesc\fP` keyword assignment\. The first \fBpkgname\fP section additionally extends the `\f[CR]license\fP` keyword specification from the \fBpkgbase\fP section and adds further package\-specific keyword assignments (e\.g\. `\f[CR]replaces\fP`, `\f[CR]groups\fP`, `\f[CR]conflicts\fP`, `\f[CR]provides\fP`, `\f[CR]backup\fP`, `\f[CR]optdepends\fP`)\. The second \fBpkgname\fP section overrides the `\f[CR]license\fP` keyword assignment and unsets the `\f[CR]depends\fP` keyword assignment\. .SS "Package data, per architecture" .PP The following minimal \fBPKGBUILD\fP defines a package for two \fBalpm\-architectures\fP\. .RS .PP .nf pkgname=example pkgver=0\.1\.0 pkgrel=1 pkgdesc="An example package" arch=(x86_64 aarch64) url="https://example\.org" license=(GPL\-3\.0\-or\-later) depends=(bash) depends_x86_64=(zsh) package() { pkgdesc+=" \- extra info" depends_x86_64+=(nushell) depends_aarch64=(sh) } .fi .RE .PP This \fBPKGBUILD\fP is represented by the following \fBSRCINFO\fP: .RS .PP .nf pkgbase = example pkgdesc = An example package pkgver = 0\.1\.0 pkgrel = 1 url = https://example\.org arch = x86_64 arch = aarch64 license = GPL\-3\.0\-or\-later depends = bash depends_x86_64 = zsh pkgname = example pkgdesc = An example package \- extra info depends_x86_64 = zsh depends_x86_64 = nushell depends_aarch64 = sh .fi .RE .PP Depending on targeted \fBalpm\-architecture\fP, the package data will differ when fully resolving all keywords\. .PP For `\f[CR]aarch64\fP`: .RS .Bl .IP \(bu 4 `\f[CR]pkgdesc = An example package \- extra info\fP` .El .Bl .IP \(bu 4 `\f[CR]pkgver = 0\.1\.0\fP` .El .Bl .IP \(bu 4 `\f[CR]pkgrel = 1\fP` .El .Bl .IP \(bu 4 `\f[CR]url = https://example\.org\fP` .El .Bl .IP \(bu 4 `\f[CR]arch = aarch64\fP` .El .Bl .IP \(bu 4 `\f[CR]license = GPL\-3\.0\-or\-later\fP` .El .Bl .IP \(bu 4 `\f[CR]depends = bash\fP` .El .Bl .IP \(bu 4 `\f[CR]depends = sh\fP` .El .RE .PP For `\f[CR]x86_64\fP`: .RS .Bl .IP \(bu 4 `\f[CR]pkgdesc = An example package \- extra info\fP` .El .Bl .IP \(bu 4 `\f[CR]pkgver = 0\.1\.0\fP` .El .Bl .IP \(bu 4 `\f[CR]pkgrel = 1\fP` .El .Bl .IP \(bu 4 `\f[CR]url = https://example\.org\fP` .El .Bl .IP \(bu 4 `\f[CR]arch = x86_64\fP` .El .Bl .IP \(bu 4 `\f[CR]license = GPL\-3\.0\-or\-later\fP` .El .Bl .IP \(bu 4 `\f[CR]depends = bash\fP` .El .Bl .IP \(bu 4 `\f[CR]depends = zsh\fP` .El .Bl .IP \(bu 4 `\f[CR]depends = nushell\fP` .El .RE .SH "SEE ALSO" .PP \fBalpm\-srcinfo\fP(1), \fBbash\fP(1), \fBPKGBUILD\fP(5), \fBmakepkg\.conf\fP(5), \fBalpm\-architecture\fP(7), \fBalpm\-comparison\fP(7), \fBalpm\-epoch\fP(7), \fBalpm\-install\-scriptlet\fP(7), \fBalpm\-package\-group\fP(7), \fBalpm\-package\-name\fP(7), \fBalpm\-package\-relation\fP(7), \fBalpm\-package\-version\fP(7), \fBalpm\-pkgrel\fP(7), \fBalpm\-pkgver\fP(7), \fBalpm\-split\-package\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 fingerprint\fP .sp https://openpgp\.dev/book/certificates\.html#fingerprint .El .Bl .IP 3. 4 \fBOpenPGP signatures\fP .sp https://openpgp\.dev/book/signing_data\.html .El .Bl .IP 4. 4 \fBOpenPGP Key ID\fP .sp https://openpgp\.dev/book/glossary\.html#term\-Key\-ID .El .Bl .IP 5. 4 \fBSPDX License List\fP .sp https://spdx\.org/licenses/ .El .Bl .IP 6. 4 \fBMD5\fP .sp https://en\.wikipedia\.org/wiki/MD5 .El .Bl .IP 7. 4 \fBSHA\-1\fP .sp https://en\.wikipedia\.org/wiki/SHA\-1 .El .Bl .IP 8. 4 \fBSHA\-2\fP .sp https://en\.wikipedia\.org/wiki/SHA\-2 .El .Bl .IP 9. 4 \fBBLAKE2\fP .sp https://en\.wikipedia\.org/wiki/BLAKE_(hash_function)#BLAKE2 .El .RE