AUR Metadata (日本語)

AUR ウェブインターフェイスに情報を表示するために、AUR のバックエンドのコードでは PKGBUILD ファイルを分析して、パッケージの名前・バージョンなどの情報をサルベージしています。PKGBUILDBash スクリプトなので、実行することなく Bash スクリプトを正確に分析するのは難題です、そのために makepkg は Bash スクリプトで出来ています: makepkg は source ディレクティブでビルドするパッケージの PKGBUILD を読み込みます。AUR メタデータファイルはそのようなハックを取り除くために作られました。ウェブインターフェイスで間違った分析が行われないように AUR パッケージのメンテナによって使用されます。FS#25210, FS#15043, FS#16394 を参照してください。

動作の仕組み

".AURINFO" という名前のメタデータファイルをソース tarball に追加することで特定の PKGBUILD フィールドを上書きします。このファイルのフォーマットは AUR 2.1.0 のリリースアナウンスで説明されています。.AURINFO ファイルは一行毎にパースされます。それぞれの行は key = value という形式をとり、key は以下のフィールド名のどれかになります:

  • pkgbase: AUR 3 から必要、これがないと悪名高い “only lowercase letters are allowed” エラーが出ます (Pacman は pkgbase がないときは最初の pkgname を使います)。
  • pkgname
  • pkgver: [epoch:]pkgver-pkgrel という形式の完全なパッケージバージョン
  • pkgdesc
  • url
  • license
  • depend (将来の AUR リリースでは depends に名前が変更されます)

他の名前のフィールドは無視されます。depend 行は多数の依存パッケージを追加するために複数指定することができます。このフォーマットは pacman/libalpm のバイナリパッケージで使われている .PKGINFO フォーマットとほぼ一致します。フィールド名のプリフィックスや分割パッケージをサポートするためのセクションで拡張でされる予定です。

makepkg --source で使う

makepkg --source を使っても作成した src tarball に .AURINFO ファイルは自動では含まれません。これを修正するには PKGBUILDsource 行に .AURINFO を追加してください。

 source=(.AURINFO ...)
 md5sums=(SKIP ...)

動作しないもの

  • マルチアーキテクチャ (x86_64 dependencies tend to be more numerous, so just put them)

pkgbuild-introspection と mkaurball

pkgbuild-introspection.AURINFO ファイルを生成するためのツールのセットになります。入ってるツールの一つである mkaurball は、makepkg --source を実行して .AURINFO ファイルを生成し、作成されたソースパッケージにそれを挿入するスクリプトです。

Tip: mkaurballmakepkg --source のラッパーです。AUR に投稿するソースパッケージを作成する際は、makepkg --source を直接実行する代わりに mkaurball を使って下さい。

公式リポジトリから pkgbuild-introspection パッケージをインストールしてください。

参照