跳至內容
出自 Arch Linux 中文维基

.SRCINFO 文件(舊稱 .AURINFO)用一個簡單直接的格式記錄軟體包的元數據,這樣像 devtools 的工具和 AUR 網站後台或 AUR 助手可以不用解析 PKGBUILD 就獲得需要的信息。直接解析 shell 腳本的潛在問題可參考 FS#25210FS#15043FS#16394

警告: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 對應:

pkgbase = foo
	pkgdesc = An example package.
	...
	md5sums = SKIP

pkgname = foo

如果 PKGBUILD 包含多個軟體包,那麼每個段落都以 pkgname 開頭,然後記錄針對那個軟體包的數據。

這篇文章的某些內容需要擴充。

原因:The above will suffice for some, below is a verbose list of parameters; split these up to improve readability. Also, find ways to reduce redundancy between this and 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

其它欄位名稱、換行和以 # 開頭的行會被忽略。