.TH "BUILDINFOv2" 5 .SH "NAME" .PP BUILDINFO \- Information on package build environments for ALPM based packages (version 2)\. .SH "DESCRIPTION" .PP The \fBBUILDINFO\fP format is a textual format that describes a package's build environment\. Such files are located at the root of ALPM packages, are named \fB\.BUILDINFO\fP and are usually used to reproduce the environment in which a package has been build\. For further information refer to \fBArch Linux's reproducible builds effort\fP[1]\. .PP The \fBBUILDINFO\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\.0\.0 on 2021\-05\-20\. .SS "Changes since the last version" .PP The new keywords \fBbuildtool\fP and \fBbuildtoolver\fP have been added to track the package name, version and architecture of the tool used to setup the build environment for a package\. .SS "General Format" .PP A \fBBUILDINFO\fP file consists of a series of lines, each providing information on an aspect of the build environment of a package, or the file format itself\. Leading whitespace is always ignored\. .PP Unless noted otherwise, the information contained in a \fBBUILDINFO\fP file is considered to be covered by the set of the 95 printable ASCII characters\. .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 \fBBUILDINFO\fP\. As exception to this rule, the keywords \fBbuildenv\fP, \fBoptions\fP and \fBinstalled\fP may be provided zero or more times\. .SB "format" .PP The \fBBUILDINFO\fP file format version\. The value must be a plain positive integer\. This must be \fB2\fP for \fBBUILDINFO\fP version 2\. .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 covered by the same rules as that of \fBpkgname\fP (e\.g\. `\f[CR]example\fP`)\. .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 "pkgarch" .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 "pkgbuild_sha256sum" .PP The hex representation of the SHA\-256 checksum of the \fBPKGBUILD\fP used to build the package\. The value must be covered by the set of hexadecimal characters and must be 64 characters long (e\.g\. `\f[CR]946d8362de3cebe3c86765cb36671a1dfd70993ac73e12892ac7ac5e6ff7ef95\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 "builddate" .PP The date at which the build of the package started\. The value must be numeric and represent the seconds since the Epoch, aka\. 'Unix time' (e\.g\. `\f[CR]1729181726\fP`)\. .SB "builddir" .PP The absolute directory path in which the package has been built by the build tool (e\.g\. `\f[CR]makepkg\fP`)\. The value is a UTF\-8\-encoded string and must represent a valid absolute directory (e\.g\. `\f[CR]/builddir\fP`)\. .SB "startdir" .PP The directory from which `\f[CR]makepkg\fP` was executed\. The value is a UTF\-8\-encoded string and must represent a valid absolute directory (e\.g\. `\f[CR]/startdir\fP`)\. .SB "buildtool" .PP The package name of the tool used to set up the build environment\. This helps the \fBArch Linux's Reproducible Builds effort\fP to reproduce the environment in which a package has been built\. The value must be a valid package name as described in \fBpkgname\fP\. .SB "buildtoolver" .PP The full version of the \fBbuildtool\fP used to set up the build environment\. The value may take one of two forms: .RS .Bl .IP \(bu 4 An \fBalpm\-package\-version\fP 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), directly followed by a '\-' sign, directly followed by an \fBalpm\-architecture\fP (e\.g\. `\f[CR]1\.0\.0\-1\-any\fP` or `\f[CR]1:1\.0\.0\-1\-any\fP`, respectively)\.\. This format is commonly used by Arch Linux's build tools\. .El .Bl .IP \(bu 4 An \fBalpm\-package\-version\fP in \fIminimal\fP or \fIminimal with epoch\fP form (e\.g\. `\f[CR]1\.0\.0\fP` or `\f[CR]1:1\.0\.0\fP`, respectively)\. This format is commonly used by `\f[CR]makepkg\fP`\. .El .RE .SB "buildenv" .PP A build environment used by the package build tool (i\.e\. `\f[CR]makepkg\fP`, defined in `\f[CR]BUILDENV\fP` of makepkg\.conf) when building the package\. This keyword may be assigned zero or more times\. The value must be a unique word, optionally prefixed by a single '!', which indicates the negation of the environment (e\.g\. `\f[CR]color\fP` or `\f[CR]!color\fP`)\. .SB "options" .PP An option used by the package build tool (i\.e\. `\f[CR]makepkg\fP`, defined in `\f[CR]OPTIONS\fP` of makepkg\.conf) when building the package\. This keyword may be assigned zero or more times\. 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`)\. .SB "installed" .PP The information about an installed package during build time of the package\. This keyword may be assigned zero or more times\. The value represents a composite string, composed of an \fBalpm\-package\-name\fP, directly followed by a '\-' sign, directly followed by an \fBalpm\-package\-version\fP (in \fIfull\fP or in \fIfull in epoch\fP form), directly followed by a '\-' sign, followed by an \fBalpm\-architecture\fP (e\.g\. `\f[CR]example\-1:1\.0\.0\-1\-x86_64\fP`)\. .SH "EXAMPLES" .RS .PP .nf format = 2 pkgname = example pkgbase = example pkgver = 1:1\.0\.0\-1 pkgarch = any pkgbuild_sha256sum = b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c packager = John Doe builddate = 1729181726 builddir = /build startdir = /startdir/ buildtool = devtools buildtoolver = 1:1\.2\.1\-1\-any buildenv = !color buildenv = check options = !strip options = staticlibs installed = other\-package\-1:0\.5\.0\-3\-any installed = package2\-2\.1\.0\-6\-x86_64 .fi .RE .SH "SEE ALSO" .PP \fBalpm\-buildinfo\fP(1), \fBPKGBUILD\fP(5), \fBmakepkg\.conf\fP(5), \fBalpm\-architecture\fP(7), \fBalpm\-package\-name\fP(7), \fBalpm\-package\-version\fP(7), \fBalpm\-pkgver\fP(7), \fBdevtools\fP(7), \fBmakepkg\fP(8), \fBpacman\fP(8), \fBrepro\fP(8) .SH "NOTES" .RS .Bl .IP 1. 4 \fBArch Linux's Reproducible Builds effort\fP .sp https://wiki\.archlinux\.org/title/Reproducible_builds .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 .RE