.SRCINFO
.SRCINFO
files (originally called .AURINFO
) contain package metadata in a simple, unambiguous format, so that tools such as devtools, the Arch User Repository Web back-end or AUR helpers may retrieve a package metadata without parsing the PKGBUILD directly. See FS#25210, FS#15043, and FS#16394 for examples of the sorts of issues that may arise from attempting to parse shell scripts.
PKGBUILD
metadata, such as pkgver() updates, do not automatically propagate to .SRCINFO
. Pushing an edited PKGBUILD
to the AUR without also updating its .SRCINFO
will cause the AUR to serve stale metadata.Generation
.SRCINFO
files may be generated using makepkg:
$ makepkg --printsrcinfo > .SRCINFO
Syntax
.SRCINFO
files are lists of key = value
pairs, separated into sections.
Keys take their names and meanings from PKGBUILD variables; see PKGBUILD(5) § OPTIONS AND DIRECTIVES. Neither keys nor values are quoted. Data that, in a PKGBUILD
, would be represented by an array is instead specified multiple times. For instance, the following are equivalent:
PKGBUILD
arch=(i686 x86_64)
.SRCINFO
arch = i686 arch = x86_64
The main section of the file is headed by a pkgbase declaration, and contains data applicable to the package as a whole. In a standard PKGBUILD
describing a single package, this will be the only section, followed by a pkgname declaration containing the same value as the preceding pkgbase
:
pkgbase = foo pkgdesc = An example package. ... md5sums = SKIP pkgname = foo
In a split PKGBUILD
, each section is headed by a pkgname
, followed by any data specific to that package.
Specification
The following fields may appear only once in each .SRCINFO
file, in the pkgbase
section:
pkgver
,pkgrel
,epoch
The following fields may appear up to once in any section.
pkgdesc
,url
,install
,changelog
The following fields may be repeated within a section to specify multiple values:
arch
groups
license
noextract
options
backup
validpgpkeys
(can only be in pkgbase)
The following fields may, additionally, specify multiple architectures as shown below:
source_x86_64 = https://foo.bar/file.tar.gz source_i686 = https://foo.bar/file_i686_patch.tar.gz
source
depends
,checkdepends
,makedepends
,optdepends
provides
,conflicts
,replaces
md5sums
,sha1sums
,sha224sums
,sha256sums
,sha384sums
,sha512sums
Fields with other names are ignored. Blank lines and comment lines beginning with a hash sign (#
) are also ignored. Lines may be indented.