.SRCINFO

来自 Arch Linux 中文维基

.SRCINFO 用一个简单直接的格式记录软件包的元数据。AUR 的网站后台或 AUR 工具可以不用解析 PKGBUILD 就获得需要的信息。

警告:PKGBUILD 元数据的修改例如 pkgver() 更新,不会自动同步到 .SRCINFO. 如果修改了 PKGBUILD 但是没更新 .SRCINFO 会导致 AUR 使用错误的数据。

生成[编辑 | 编辑源代码]

可以通过 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 = foo
	pkgdesc = An example package.
	[...]
	md5sums = SKIP

pkgname = foo

如果 PKGBUILD 包含多个软件包,那么每个段落都以 pkgname 开头,然后记录针对那个软件包的数据。

要求[编辑 | 编辑源代码]

下面字段只能在.SRCINFO 文件的 pkgbase 段落出现一次:

  • pkgver, pkgrel, epoch

下面字段可以在任何字段出现,每段落最多一次:

  • pkgdesc, url, install, changelog

下面字段可以在一个段落里多次出现:

  • arch
  • groups
  • license
  • noextract
  • options
  • backup
  • validpgpkeys

下列的字段名称会重复出现,也许有体系结构作为后缀

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

其它字段名称,换行和带有"#"的行会被忽略.