.SRCINFO

提供: ArchWiki
2024年1月21日 (日) 02:23時点におけるKgx (トーク | 投稿記録)による版 (→‎仕様: 同期)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

.SRCINFO ファイルにはパッケージのメタデータが記述されています。わかりやすいフォーマットが使われており、AUR のウェブバックエンドや AUR ヘルパー.SRCINFO ファイルを使用することで PKGBUILD を直接パースしなくてもパッケージのメタデータを取得することができます。シェルスクリプトのパースによって起こる問題については FS#25210, FS#15043, FS#16394 などがあります。

警告: PKGBUILD のメタデータに変更 (pkgver() の更新など) を加えても、自動的に .SRCINFO に変更が反映されることはありません。.SRCINFO を更新せずに、編集した PKGBUILD を AUR に投稿してしまうと、AUR に古いメタデータが残ってしまいます。

生成

.SRCINFO ファイルは以下のように makepkg を使って生成することができます。

$ makepkg --printsrcinfo > .SRCINFO

構文

.SRCINFO ファイルは key = value の組み合わせからなり、さらに複数のセクションに分かれています。

キーの名前は PKGBUILD 変数 と同じです。キーや値をクォートで囲う必要はありません。また、PKGBUILD の中で配列として記述されるデータは同じキーを使って複数回記述されます。例えば、以下は同じ内容になります:

# PKGBUILD
arch=(i686 x86_64)
# .SRCINFO
arch = i686
arch = x86_64

ファイルのメインセクションは pkgbase の宣言から始まり、それからパッケージのデータを記述します。単体のパッケージしか定義していない標準的な PKGBUILD の場合、セクションは一つだけとなり、pkgbase と同じ値を持った 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

他の名前のフィールドは無視されます。空行やハッシュ記号 (#) が先頭に付いているコメント行も同じく無視されます。インデントは自由に追加できます。