Package Maintainer ガイドライン

提供: ArchWiki
2015年1月9日 (金) 23:11時点におけるKusakata (トーク | 投稿記録)による版 (1版 をインポートしました)
ナビゲーションに移動 検索に移動

[[Category:パッケージ開発]

関連記事

Trusted User (TU) は AUR を正常に維持する任を負うコミュニティのメンバーです。彼または彼女は人気のパッケージをメンテナンスして (必要に応じて上流と話を持ったりパッチを送る)、管理上の問題について投票を行います。TU は活動的なコミュニティメンバーから現任の TU によって民主的な方法で選ばれます。TU は AUR の方針について最終的な決定権を持つ唯一のメンバーです。

TU は TU bylaws によって律されます。

新任 Trusted User のための TODO リスト

  1. この wiki ページを全て読む
  2. TU Bylaws を読む。
  3. AUR のあなたのアカウントの情報が最新であること、あなたの後見人によって TU の地位が与えられたことを確認。
  4. Trusted Users のページにあなたの情報を追加。
  5. フォーラムのあなたのアカウントを変更するよう BBS 管理者に催促する。
  6. #archlinux-tu@freenode のキーを TU の誰かに聞いてチャンネルで他のメンバーと話す。これは必須ではありませんが、ときに内緒話がされたり新しいアイデアがたくさん出されるところなので参加すると良いはずです。
  7. 2日間経ってもバグトラッカーの Trusted User グループに昇格されない場合、このことをバグとして公の Arch Linux 開発メーリングリストに報告する (arch-dev-public@archlinux.org)。
  8. 開発インターフェイスにアクセスするためにこのテンプレートに基づく情報を全て Ionuț Bîru (ibiru@archlinux.org) に送る。
  9. devtools パッケージをインストール。
  10. SSH 公開鍵を付した署名付きメールを Florian Pritz に送る。鍵を持ってない場合、ssh-keygen を使って生成する。SSH 鍵に関する詳細は Using SSH Keys の wiki ページを参照。
  11. パッケージ署名のための PGP 鍵を作成する。
  12. マスターキーの所有者全員にあなたの PGP 鍵とその鍵の完全なフィンガープリントを記述した署名付きメールを送る。あなたの鍵にはマスターキーを持っている5人のうち最低でも3人の署名が必要。
  13. nymeria.archlinux.org に ~/staging/community~/staging/community-testing ディレクトリを作成する (multilib パッケージのメンテをする場合は ~/staging/multilib も)。devtools スクリプトはこのディレクトリを使って新しいパッケージを処理するので、このステップは重要です。
  14. arch-dev-public メーリングリストを購読して Florian にあなたをホワイトリストへ追加するように要求する。
  15. 貢献を始める。

TU と [unsupported]

TU は UNSUPPORTED に投稿されたパッケージが PKGBUILD のスタンダードに従っているか都督したり、悪意のあるコードが入ってないか確認するのも仕事です。UNSUPPORTED の約80%の PKGBUILD はとてもシンプルなもので、TU チームはサニティチェックや悪意のあるコードの確認を迅速に行うことができます。

TU は PKGBUILD のマイナーな間違いをチェックして、修正や改善を提案することも行います。TU は全てのパッケージが Arch Packaging Guidelines/Standards を守るように努め、そうすることで他のパッケージ作成者とスキルを共有し、ディストロ全体のパッケージビルド水準を向上させんと邁進します。

また、TU は推奨されるプラクティスを文章化するという赫奕たるポジションにも就いています。

TU と [community], パッケージメンテナンスのガイドライン

[community] リポジトリにパッケージを入れるときのルール

  • "人気のある"パッケージだけがリポジトリに入ることを許可されます、定義としては pkgstats で使用率が1%か AUR の投票が10以上。
  • このルールの機械的な例外は:
    • i18n パッケージ
    • アクセシビリティパッケージ
    • ドライバー
    • 人気のあるパッケージの定義を満たすパッケージの依存パッケージ、makedeps や optdeps を含む
    • まとめて一緒に配布することが意図されているコレクションの一部にあたるパッケージ、コレクションの一部が人気の条件を満たすことが前提
  • 上記の基準にあてはまらない特別の場合は、かならず最初に aur-general メーリングリストに提案を行い、その理由を説明しなくてはなりません (例: パッケージの名前が変わった、新しいパッケージ)。パッケージが [community] に入れられるには他の3人の TU の同意が必要です。多数の"人気ではない"パッケージの追加を提案しても基本的には却下されます。
  • メンテナンスしている中であまり使用していないパッケージは [community] から移すことを TU は強く推奨されます。強制は行われませんが、辞任した TU のパッケージが取り除かれて他の人に承継されることがあります。

リポジトリにアクセスして更新する

現在 [community] リポジトリは [core] や [extra] にパッケージを上げるのに使うと同じシステムである devtools を使用しています。違いは gerolde.archlinux.org の代わりに nymeria.archlinux.org というサーバーを使っているということだけです。そのため Packager Guide に書かれていることがほぼ全てあてはまります。[community] リポジトリ特有の情報 (URL の変更など) はこのページに記載します。devtools を使うためにパッケージ作成者は PACKAGER 変数を設定する必要があります。クリーンな chroot では標準の設定ファイルは置かれないので {{ic|/usr/share/devtools/makepkg-{i686,x86_64}.conf}} で設定します。

最初に [community] リポジトリの non-recursive checkout を行なって下さい:

svn checkout -N svn+ssh://svn-community@nymeria.archlinux.org/srv/repos/svn-community/svn

これで空の "svn" という名前のディレクトリが作成されます。空ではありますが svn のチェックアウトです。

チェックアウト, 全てのパッケージのアップデート, パッケージの追加については Packager Guide を見て下さい。

パッケージを削除するには:

ssh nymeria.archlinux.org /community/db-remove community arch pkgname

このコマンドや以下の文章で出てくる arch は Arch Linux でサポートされている2つのアーキテクチャである i686 または x86_64 のどちらかになります。 (What about "any"?)

PKGBUILD などの編集が完了したら、変更を commit してください (svn commit)。

パッケージをリリースしたいときは、まず scp を使ってパッケージを nymeria.archlinux.org の staging/community ディレクトリにコピーしてそれから pkgname/trunk ディレクトリに移動して archrelease community-arch を実行してパッケージをタグ付けしてください。これによってパッケージが community リポジトリに入っていることを示す community-i686community-x86_64 という名前のディレクトリに trunk エントリの svn コピーが作成されます。

Note: 時として、特に community パッケージの場合、x86_64 TU が pkgrel を (+1 ではなく) .1 上げることがあります。これは PKGBUILD への変更が x86_64 特有のものであり i686 メンテナは i686 のパッケージをリビルドしないようにすることを示します。TU が pkgrel を更新しようとするときは、通常の +1 の増加を使用するべきです。ただし、TU によって更新された前の pkgrel=2.1 は pkgrel=3.1 にするのではなく代わりに pkgrel=3 にする必要があります。要するに、混乱を避けるためにドット (.) リリースは x86_64 TU のためだけに取っておいて下さい。

パッケージの更新のプロセスは以下のようにまとめることができます:

  • パッケージのディレクトリを Update する (svn update some-package)
  • パッケージの trunk ディレクトリに Change する (cd some-package/trunk)
  • PKGBUILD を Edit して、必要な変更を行ってから makepkg を実行。ビルドは clean chroot で行うのが推奨されます。
  • PKGBUILD やバイナリの pkg.tar.gz を Namcap する。
  • communitypkg "commit message" を使ってパッケージを Commit, Copy, Tag。これは以下のことを自動化します:
    • trunk 変更を Commit (svn commit)
    • パッケージを nymeria.archlinux.org に Copy (scp pkgname-ver-rel-arch.pkg.tar.xz* nymeria.archlinux.org:staging/community/)
    • パッケージに Tag ({{ic|archrelease community-{i686,x86_64}}})
  • リポジトリを Update する (ssh nymeria.archlinux.org /community/db-update)

Packager GuideMiscellaneous セクションも参照してください。Avoid having to enter your password all the time セクションでは gerolde.archlinux.org の代わりに nymeria.archlinux.org を使って下さい。

パッケージを放棄する

TU がこれ以上パッケージをメンテできない・したくないとなったら、他の TU がメンテできるように AUR メーリングリストに告知を投稿する必要があります。メンテしたいという TU が出てこない時でもパッケージを放棄することは可能ですが、TU は多数のパッケージをドロップするべきではありません (割ける時間以上のことには関わらない)。パッケージが廃れたりもう使われなくなったときは、完全に削除することができます。

パッケージを完全に削除したら、TU の代わりに通常のユーザーがパッケージを管理できる、UNSUPPORTED にもう一度 (新しく) アップロードできます。

unsupported から [community] にパッケージを移動する

community に通常の方法に従ってパッケージを追加します、ただし unsupported から該当するパッケージを忘れずに削除してください。

[community] から unsupported にパッケージを移動する

上記の方法でパッケージを削除して AUR にソース tarball をアップロードします。

[community-testing] から [community] にパッケージを移動する

ssh nymeria.archlinux.org /srv/repos/svn-community/dbscripts/db-move community-testing community package

unsupported からパッケージを削除する

ダミーパッケージを削除しても意味はありません、依存関係をトラックする際に再作成されるからです。誰かが本当のパッケージをアップロードすると全ての参照先は正しい場所になります。

参照