.SRCINFO 文件(旧称 .AURINFO)用一个简单直接的格式记录软件包的元数据,这样像 devtools包 的工具和 AUR 网站后台或 AUR 助手可以不用解析 PKGBUILD 就获得需要的信息。直接解析 shell 脚本的潜在问题可参考 FS#25210,FS#15043 和 FS#16394。
生成
可以通过 makepkg 自动生成 .SRCINFO 文件:
$ makepkg --printsrcinfo > .SRCINFO
语法
.SRCINFO 按行解析,每一行由像 key = value 一样的键值对组成。
每一个键都是一个字段,键值与 PKGBUILD 变量对应,具体请参考 PKGBUILD(5) § OPTIONS AND DIRECTIVES。键和数值都不应该加引号。等号两边一定要有一个空格(即使值为空)而且值之间不能包含逗号。有些值在 PKGBUILD 中是数组,需要变为同样的值多次指定,例如:
PKGBUILD
arch=(i686 x86_64)
.SRCINFO
arch = i686 arch = x86_64
文件以 pkgbase 声明开头,此段落包含适用于整个软件包的数据。标准的 PKGBUILD 描述了一个单独的软件包,那么这就是唯一的主段落,后面跟着包含软件包的名称的 pkgname 声明,与前面的 pkgbase 对应:
pkgbase = foo pkgdesc = An example package. ... md5sums = SKIP pkgname = foo
如果 PKGBUILD 包含多个软件包,那么每个段落都以 pkgname 开头,然后记录针对那个软件包的数据。
要求
下面字段只能在 .SRCINFO 文件的 pkgbase 段落出现一次:
-
pkgver,pkgrel,epoch
下面字段可以在任何字段出现,每段落最多一次:
-
pkgdesc,url,install,changelog
下面字段可以在一个段落里多次出现:
archgroupslicensenoextractoptionsbackup-
validpgpkeys(只能在 pkgbase 出现)
下列的字段可以重复出现,以多个体系结构为例:
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
其它字段名称、换行和以 # 开头的行会被忽略。