.SRCINFO

出自 ArchWiki

.SRCINFO 文件(最初 称为 .AURINFO)以简单、明确的格式包含软件包元数据,以便 devtoolsArch 用户仓库 Web 后端或 AUR 助手 等工具可以检索软件包元数据,而无需直接解析 PKGBUILD。 请参阅 FS#25210FS#15043FS#16394,了解尝试解析 shell 脚本可能出现的各种问题示例。

警告:PKGBUILD 元数据的更改,例如 pkgver() 更新,不会自动传播到 .SRCINFO。 将编辑后的 PKGBUILD 推送到 AUR 而不同时更新其 .SRCINFO 将导致 AUR 提供过时的元数据。

生成

可以使用 makepkg 生成 .SRCINFO 文件

$ makepkg --printsrcinfo > .SRCINFO

语法

.SRCINFO 文件是 key = value 对的列表,分为多个部分。

键的名称和含义取自 PKGBUILD 变量;请参阅 PKGBUILD(5) § 选项和指令。 键和值均未加引号。 在 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 开头,后跟特定于该软件包的任何数据。

此条目或章节需要扩充。

原因: 以上内容对某些人来说就足够了,以下是参数的详细列表;拆分这些内容以提高可读性。 此外,找到减少此内容和 PKGBUILD 之间冗余的方法。(在 Talk:.SRCINFO 中讨论)

规范

以下字段在每个 .SRCINFO 文件中只能出现一次,位于 pkgbase 部分中

  • pkgverpkgrelepoch

以下字段在任何部分中最多可以出现一次。

  • pkgdescurlinstallchangelog

以下字段可以在一个部分内重复以指定多个值

  • arch
  • groups
  • license
  • noextract
  • options
  • backup
  • validpgpkeys(只能在 pkgbase 中)

以下字段还可以指定多个 架构,如下所示

source_x86_64 = https://foo.bar/file.tar.gz
source_i686 = https://foo.bar/file_i686_patch.tar.gz
  • source
  • dependscheckdependsmakedependsoptdepends
  • providesconflictsreplaces
  • md5sumssha1sumssha224sumssha256sumssha384sumssha512sums

忽略具有其他名称的字段。 空行和以井号 (#) 开头的注释行也会被忽略。 行可以缩进。