「Package Maintainer ガイドライン」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(add Category.)
 
(3人の利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:パッケージ開発]]
 
[[Category:パッケージ開発]]
  +
[[Category:OpenPGP]]
 
[[en:AUR Trusted User Guidelines]]
 
[[en:AUR Trusted User Guidelines]]
 
[[es:AUR Trusted User Guidelines]]
 
[[es:AUR Trusted User Guidelines]]
 
[[pt:AUR Trusted User Guidelines]]
 
[[pt:AUR Trusted User Guidelines]]
[[zh-CN:AUR Trusted User Guidelines]]
+
[[zh-hans:AUR Trusted User Guidelines]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Arch User Repository}}
 
{{Related|Arch User Repository}}
15行目: 16行目:
 
# [https://aur.archlinux.org/trusted-user/TUbylaws.html TU Bylaws] を読む。
 
# [https://aur.archlinux.org/trusted-user/TUbylaws.html TU Bylaws] を読む。
 
# [[Arch User Repository|AUR]] のあなたのアカウントの情報が最新であること、あなたの後見人によって TU の地位が与えられたことを確認。
 
# [[Arch User Repository|AUR]] のあなたのアカウントの情報が最新であること、あなたの後見人によって TU の地位が与えられたことを確認。
# [[en2:Trusted Users|Trusted Users]] のページにあなたの情報を追加。
+
# [[Trusted Users]] のページにあなたの情報を追加。
 
# フォーラムのあなたのアカウントを変更するよう [https://bbs.archlinux.org/userlist.php?username=&show_group=1&sort_by=username&sort_dir=ASC&search=Submit BBS 管理者]に催促する。
 
# フォーラムのあなたのアカウントを変更するよう [https://bbs.archlinux.org/userlist.php?username=&show_group=1&sort_by=username&sort_dir=ASC&search=Submit BBS 管理者]に催促する。
 
# #archlinux-tu@freenode のキーを TU の誰かに聞いてチャンネルで他のメンバーと話す。これは必須ではありませんが、ときに内緒話がされたり新しいアイデアがたくさん出されるところなので参加すると良いはずです。
 
# #archlinux-tu@freenode のキーを TU の誰かに聞いてチャンネルで他のメンバーと話す。これは必須ではありませんが、ときに内緒話がされたり新しいアイデアがたくさん出されるところなので参加すると良いはずです。
40行目: 41行目:
 
=== [community] リポジトリにパッケージを入れるときのルール ===
 
=== [community] リポジトリにパッケージを入れるときのルール ===
   
* パッケージが Arch Linux のリポジトリのどれかに既に存在していてはいけません。他のパッケージ作成者が同じパッケージを入れようとしていないか事前に確認する必要があります。AUR のパッケージのコメントを二重点検し、[https://mailman.archlinux.org/mailman/listinfo/aur-general aur-general] の最新の見出しを読み、[https://bugs.archlinux.org/index.php?project=0&do=index&switch=1 バグトラッカーで全てのプロジェクト]を検索、[http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html Subversion のログ] を [http://en.wikipedia.org/wiki/Grep grep] にかけ、非公開の TU [[IRC チャンネル]]に走り書きを残す。
+
* パッケージが Arch Linux のリポジトリのどれかに既に存在していてはいけません。他のパッケージ作成者が同じパッケージを入れようとしていないか事前に確認する必要があります。AUR のパッケージのコメントを二重点検し、[https://lists.archlinux.org/listinfo/aur-general aur-general] の最新の見出しを読み、[https://bugs.archlinux.org/index.php?project=0&do=index&switch=1 バグトラッカーで全てのプロジェクト]を検索、[http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html Subversion のログ] を [https://en.wikipedia.org/wiki/Grep grep] にかけ、非公開の TU [[IRC チャンネル]]に走り書きを残す。
   
 
* "人気のある"パッケージだけがリポジトリに入ることを許可されます、定義としては [https://www.archlinux.de/?page=PackageStatistics pkgstats] で使用率が1%か AUR の投票が10以上。
 
* "人気のある"パッケージだけがリポジトリに入ることを許可されます、定義としては [https://www.archlinux.de/?page=PackageStatistics pkgstats] で使用率が1%か AUR の投票が10以上。
57行目: 58行目:
 
=== リポジトリにアクセスして更新する ===
 
=== リポジトリにアクセスして更新する ===
   
現在 [community] リポジトリは [core] や [extra] にパッケージを上げるのに使うと同じシステムである '''devtools''' を使用しています。違いは {{ic|gerolde.archlinux.org}} の代わりに {{ic|nymeria.archlinux.org}} というサーバーを使っているということだけです。そのため [[en2:DeveloperWiki:HOWTO Be A Packager|Packager Guide]] に書かれていることがほぼ全てあてはまります。[community] リポジトリ特有の情報 (URL の変更など) はこのページに記載します。devtools を使うためにパッケージ作成者は [[Arch_Build_System#.2Fetc.2Fmakepkg.conf で PACKAGER 変数を設定する|PACKAGER 変数]]を設定する必要があります。クリーンな chroot では標準の設定ファイルは置かれないので {{ic|/usr/share/devtools/makepkg-{i686,x86_64}.conf}} で設定します。
+
現在 [community] リポジトリは [core] や [extra] にパッケージを上げるのに使うと同じシステムである '''devtools''' を使用しています。違いは {{ic|gerolde.archlinux.org}} の代わりに {{ic|nymeria.archlinux.org}} というサーバーを使っているということだけです。そのため [[DeveloperWiki:パッケージャになる方法|Packager Guide]] に書かれていることがほぼ全てあてはまります。[community] リポジトリ特有の情報 (URL の変更など) はこのページに記載します。devtools を使うためにパッケージ作成者は [[Arch_Build_System#.2Fetc.2Fmakepkg.conf で PACKAGER 変数を設定する|PACKAGER 変数]]を設定する必要があります。クリーンな chroot では標準の設定ファイルは置かれないので {{ic|/usr/share/devtools/makepkg-{i686,x86_64}.conf}} で設定します。
   
 
最初に [community] リポジトリの '''non-recursive checkout''' を行なって下さい:
 
最初に [community] リポジトリの '''non-recursive checkout''' を行なって下さい:
64行目: 65行目:
 
これで空の "svn" という名前のディレクトリが作成されます。空ではありますが svn のチェックアウトです。
 
これで空の "svn" という名前のディレクトリが作成されます。空ではありますが svn のチェックアウトです。
   
'''チェックアウト''', 全てのパッケージの'''アップデート''', パッケージの'''追加'''については [[en2:DeveloperWiki:HOWTO Be A Packager|Packager Guide]] を見て下さい。
+
'''チェックアウト''', 全てのパッケージの'''アップデート''', パッケージの'''追加'''については [[DeveloperWiki:パッケージャになる方法|Packager Guide]] を見て下さい。
   
 
パッケージを'''削除'''するには:
 
パッケージを'''削除'''するには:
81行目: 82行目:
 
* パッケージのディレクトリを '''Update''' する ({{ic|svn update some-package}})
 
* パッケージのディレクトリを '''Update''' する ({{ic|svn update some-package}})
 
* パッケージの trunk ディレクトリに '''Change''' する ({{ic|cd some-package/trunk}})
 
* パッケージの trunk ディレクトリに '''Change''' する ({{ic|cd some-package/trunk}})
* PKGBUILD を '''Edit''' して、必要な変更を行ってから {{ic|makepkg}} を実行。ビルドは [[en2:DeveloperWiki:Building in a Clean Chroot|clean chroot]] で行うのが推奨されます。
+
* PKGBUILD を '''Edit''' して、必要な変更を行ってから {{ic|makepkg}} を実行。ビルドは [[DeveloperWiki:クリーンな chroot 内でビルドする|clean chroot]] で行うのが推奨されます。
 
* PKGBUILD やバイナリの pkg.tar.gz を '''[[Namcap]]''' する。
 
* PKGBUILD やバイナリの pkg.tar.gz を '''[[Namcap]]''' する。
 
* {{ic|communitypkg "commit message"}} を使ってパッケージを '''Commit''', '''Copy''', '''Tag'''。これは以下のことを自動化します:
 
* {{ic|communitypkg "commit message"}} を使ってパッケージを '''Commit''', '''Copy''', '''Tag'''。これは以下のことを自動化します:
89行目: 90行目:
 
* リポジトリを '''Update''' する ({{ic|ssh nymeria.archlinux.org /community/db-update}})
 
* リポジトリを '''Update''' する ({{ic|ssh nymeria.archlinux.org /community/db-update}})
   
[[en2:DeveloperWiki:HOWTO Be A Packager|Packager Guide]] の ''Miscellaneous'' セクションも参照してください。''Avoid having to enter your password all the time'' セクションでは gerolde.archlinux.org の代わりに nymeria.archlinux.org を使って下さい。
+
[[DeveloperWiki:パッケージャになる方法|Packager Guide]] の ''Miscellaneous'' セクションも参照してください。''Avoid having to enter your password all the time'' セクションでは gerolde.archlinux.org の代わりに nymeria.archlinux.org を使って下さい。
   
 
=== パッケージを放棄する ===
 
=== パッケージを放棄する ===

2024年5月1日 (水) 21:13時点における最新版

関連記事

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 鍵に関する詳細は SSH 鍵の 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-repo-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 からパッケージを削除する

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

参照