m (最新版を反映) |
m (最新版を反映) |
||
Line 262: | Line 262: | ||
もしビルドが失敗したなら、ビルドシステムはあなたにレポートをメールで送ります。レポートにログが表示されます。gitに必要な変更をコミットし、SPECファイルのリリースビルド番号をあげて、新しいビルドをリクエストしてください。 | もしビルドが失敗したなら、ビルドシステムはあなたにレポートをメールで送ります。レポートにログが表示されます。gitに必要な変更をコミットし、SPECファイルのリリースビルド番号をあげて、新しいビルドをリクエストしてください。 | ||
=== | === Bodhiにパッケージ更新として投稿する === | ||
Bodhi という Fedora アップデートシステムはアップデートの公開やパッケージの分類等のために使用されます。Bodhi 経由で "master" (別名 rawhide) パッケージを投稿してはいけません。 | Bodhi という Fedora アップデートシステムはアップデートの公開やパッケージの分類等のために使用されます。Bodhi 経由で "master" (別名 rawhide) パッケージを投稿してはいけません。 | ||
コマンドラインから Bodhi を使用してアップデートを転送することができます。 | コマンドラインから Bodhi を使用してアップデートを転送することができます。 | ||
fedpkg update | |||
詳細は [[Package_update_HOWTO|パッケージ更新投稿ガイド]] を参照してください。 | |||
詳細は [[ | |||
=== パッケージを "comps" ファイルで利用可能にする === | === パッケージを "comps" ファイルで利用可能にする === |
Revision as of 03:43, 27 March 2019
貢献という役割
Fedora パッケージコレクションメンテナへの参加方法
本当にあなたは Fedora プロジェクトのパッケージメンテナになることを決意しましたか?これはあなたが最初のパッケージを投稿するまでのガイドです。
Fedora パッケージコレクションメンテナになる
ガイドラインを読む
もしあなたが RPM パッケージの作成方法を知らないなら、GNU Hello RPM package チュートリアルか、より高度で詳細な内容の RPM パッケージの作成方法を参照してください。
そしてパッケージングガイドライン と パッケージ名ガイドラインを読んでください。
あなたは RPM パッケージングに十分に精通する必要があります。RPM パッケージングの知識は全てのパッケージ投稿に影響を与えます。もし質問があれば、Fedora packaging List で尋ねてください。
Bugzilla アカウントを作成する
Red Hat Bugzilla にアカウントを作成してください。
Bugzilla のアカウントで使用するメールアドレスは、Fedora パッケージングの全ての関連事項を扱うために Fedora アカウントシステムで使用するメールアドレスと同じメールアドレスを使用すべきです。
Fedora アカウントを取得する
Fedora アカウントシステムでアカウントを作成してください(これは Bugzilla アカウントでは ありません )。
- https://admin.fedoraproject.org/accounts/ アカウントシステムのホームへ訪問する
- 'New account' を選択してブランク項目に記入してください。メールアドレスは、Bugzilla のアカウントで使用するメールアドレスと同じメールアドレスにすべきです。これによって、システムは、FedoraアカウントシステムとBugzillaの二つのアカウント間の権限をリンクできるようになります。
- アカウントを作成した後で CLA に署名しているか(画面の "My Account" リンクをクリックすると CLA: CLA Done となっているか)確認してください。
- さらに RSA のSSH公開鍵をアップロードする必要があります。SSH 経由で Fedora マシンへアクセスする秘密鍵に対応する公開鍵を使用する必要があります。
重要なメーリングリストへ参加する
あなたは fedora devel-announce メーリングリストへ参加しなければなりません。それは流通量の少ないアナウンス用のメーリングリストで、重要な開発情報が投稿されます。
fedora devel メーリングリストに参加することもできます。そこでは開かれた Fedora 開発に関して議論されます。これは流通量の多いメーリングリストです。
さらに package-announce に参加することも考慮してください。Fedora リポジトリの全パッケージのコミット通知を取得するためのコミット情報のメーリングリストです。これはかなり流通量が多いメーリングリストです。Fedora パッケージデータベースは、あなたが(共同で)メンテナンスするパッケージのためにコミットメールを送信します。
参加した方が良いと見なされる(少なくともアーカイブを見れる方が良い)他のメーリングリストは packaging です。これは Fedora プロジェクトの公式パッケージングガイドラインを決定する Fedora パッケージング委員会のメーリングリストです。
パッケージが適切なものだと保証する
あなたが投稿するパッケージは既に Fedora でパッケージングされていない、フリーでオープンソースなプロジェクトになります。あなたのパッケージを作成する前に、そのソフトウェアが Fedora リポジトリに既に存在していないか、又はレビュー待ち状態でないかを確認してください。
- 既にリポジトリにパッケージが存在していないかを Fedora packagesで検索してください。
- レビュー待ち状態でないかを レビュートラッカ で検索してください。
- さらに 非推奨パッケージリストを確認してください。
- 禁止されてるアイテムに注意してください。
あなたの義務を理解する
Fedoraに同梱されているソフトウエアコンポーネントは、積極的に保守管理される必要があります。バグ、特に、セキュリティに関する問題は、即座に修正される必要があります。これは、あなたが第一に認識するべきFedoraパッケージ保守管理者としての責任 です。私たちは、あなたに、パッケージの共同保守管理者となること、そして、あなたがヘルプが必要である場合はいつでも、開発者MLを通じて、Fedoraコミュニティに助けを求めることを、あなたに望みます。
他の提案を読む
パッケージングに関して学ぶために他の人のパッケージ投稿を読んで、そのプロセスや要求に精通してください。
そうするための1つの方法は package-review メーリングリスト]に参加することです。Fedora パッケージレビューの全てのコメントがこのメーリングリスト(あなたの視点からだと読み専用)に送られます。
あなたのGitを設定する
Fedoraパッケージ作成のための準備として、最初にやることは、Gitで使用するあなたの名前とメールアドレスを設定することです。Fedoraのパッケージに対するコミットごとに名前とメールアドレスがリンクされます。
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
クライアントツールをインストールする
Fedora コレクション又は EPEL 向けにパッケージをビルドするために Koji を使用する必要があります。
パッケージは fedora でパッケージング作業や環境構築を助けるツールを提供します。rootで、次のようにしてインストールすることができます。
fedora-packager
dnf install fedora-packager
インストール後、あなたのFedoraアカウントシステムのユーザ名を ~/.fedora.upn
にセットします(root ではなく、一般ユーザで実行してください)。次のようにします。
echo "あなたのFedoraアカウントシステムのユーザ名" > ~/.fedora.upn
(”あなたのFedoraアカウントシステムのユーザ名"の部分は当然置き換えてください。)
あなたが持っていないプラットホーム(例えば PPC)又は、ディストリビューション上で RPM パッケージのビルドを試すために "koji" を使用することができます。あなたのパッケージが承認されていなくて、スポンサーを取得していない状況であっても、ビルド("スクラッチ" ビルド)テストができることに注意してください。koji を使用してスクラッチビルドを行う最も簡単な方法はコマンドラインで次のように実行します。
koji build --scratch TARGET path_to_source_RPM
オプションやコマンドライン引数:
- TARGET は (Fedora 25 向けは)f25 のようにディストリビューションのキーワードです。"koji list-targets" を実行すると全ての対応ディストリビューションを確認できます。次のリリース(rawhide)向けにビルドするためには "dist-rawhide" を 使用するのではなく 、"fX" (X は最新の安定バージョンの番号よりも高い番号を指定する)を使用してください。
- URL ではなく 、ソース RPM (.src.rpm ファイル) への パス を与える必要があることに注意してください。(もし spec ファイルのみなら、新たなソース RPM を作成するために
rpmbuild --nodeps -bs SPECFILE
を実行してください)
あなたの koji ビルドは実際に TARGET ディストリビューションのリポジトリにあるパッケージのみに依存します。あなたのパッケージがまだ Bodhi にリリースされていない新しいパッケージに依存している場合、リリースされているディストリビューションでしか koji を使用してビルドすることはできません。その新しいパッケージがこの後に説明されるように "rawhide" 向けにビルドされているなら、その新しいパッケージに依存していたとしても rawhide (次のリリースバージョン) 向けに koji を使用して ビルドすることができます 。安定版リポジトリへまだリリースされていないアップデートであるパッケージに対してビルドする必要があるなら、 https://fedorahosted.org/rel-eng/newticket で rel-eng を付けてチケットを登録して buildroot を上書きするようにリクエストすることができます。EPEL のパッケージでは、担当者がそのチケットを受け取れるようにコンポーネントに epel を使用する必要があります。
koji についてヘルプから学習することができます。
koji --help # 全般的なヘルプ koji --help-commands # koji コマンドを表示する koji COMMAND --help # COMMAND のヘルプを表示する
Koji の詳細については Using_the_Koji_build_system を参照してください。
パッケージを作る
- もし RPM パッケージを作成する方法を知らないなら RPM パッケージの作成方法を参照してください。
- あなたのパッケージが パッケージングガイドラインと パッケージング名ガイドラインに準拠しているかを確認してください。
- パッケージレビューガイドラインに注意してください(パッケージレビューに使用されます)。
- パッケージがビルドできることを確認してください。これは意外に重要です。なぜならば、注目されるほどの数の投稿がビルドしてないからです。
パッケージをアップロードする
SRPM と spec ファイルをインターネット上のどこかにアップロードしてください。それは URL でどこからでもアクセスできる場所になります。しかし、重要なことは、直接アクセスができることです。何かのサービスに隠れていないこと(ダウンロードされるまでに待たされたり、広告ページ経由でリダイレクトされる)が重要です。
もしあなたが、公式レポジトリにパッケージを置くまでの間、ユーザーが必要に応じてビルドできるようにしたい場合は、Coprの利用を考えてください。Copr は、軽量で自動化されたビルドシステムです。あなたがアップするSRPMを使ってレポジトリを作成できます。あなたは、Coprのスペースを使って、レビューアーにあなたの作ったsrc.rpmファイルとspecファイルの場所を提示することができます。
レビューリクエストを作成する
https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&format=fedora-review のフォームに記入してください。
- あなたのリクエストを投稿する前に同じパッケージに対して直前のリクエストがないかを確認してください。便利な検索ボックスが package review status page にあります。
- そのパッケージが何なのかを説明する 短い要約 を添えて '
Review Summary
' フィールドに パッケージ名 (バージョンとリリース番号を除く) があることを確認してください。 - あなたのパッケージの 説明 (通常は spec ファイルの %description に追加する内容と同じ説明)を '
Review Description
' フィールドに追加してください。そして、あなたの SRPM や SPEC ファイルへの URLs を含めてください。 - これはあなたの最初のパッケージでスポンサーが必要であることも説明してください。また、スポンサーとなる人にとって助けになるかもしれない情報はなんでも含めてください。もしあなたが、他のレビューをすでにしているならば、それらのリンクを含めてください。もしあなたがパッケージ対象ソフトウエアの直接の保守管理者ならば、必ずそう書いてください。
- Kojiのビルドが成功しているリンクを含めてください。ボーナスポイントとなります。全員があなたが全ての宿題をやったことがわかりますから。
レビュープロセスの詳細は パッケージレビュープロセスページを参照してください。
アップストリームへ知らせる
プロジェクトとしての Fedora は アップストリームに近い状態を維持することを好みます。あなたがパッケージングしていることをそのソフトウェアの開発者へ知らせてください。自己紹介のメールを送ったり、レビューリクエストで指摘したりすることで自分がパッケージングを行っていると知らせることができます。これは今後の会話の場を提示します。彼らのソフトウェアが現在は Fedora の一部であるという事実を通常は公示するか、既存リリースの重要なバグ、今後のロードマップ等があればあなたに知らせたくなるかもしれません。
自己紹介する
新しいパッケージ保守管理者がFedoraプロジェクトに参加するときは、Fedora devel メーリングリストに自己紹介をお願いします。メーリングリストを購読するためには、devel メーリングリストの購読ページに訪れてください。自己紹介の主な目的は、Fedoraコミュニティメンバーがあなたをもう少し詳しく知ることによって、信頼を構築するプロセスを開始し、あなたのレビューリクエストがより早く進むチャンスを増やすことです。
私たちは、匿名性をなくし、プロジェクト内に、現実世界のコミュニティを作り出すことを願っています。あなたは、個人的な秘密を知らせる義務はありません。目的は、あなたとプロジェクトのほかのメンバーの間に一定の信頼を築くことです。しかし、あなたは私たちと意思疎通するときは、少なくとも自分の本当の名前を使う方が良いです。また、あなたが誰であるか、あなたの動機、そして、おそらくはあなたがレビューのために投稿したソフトウエアの説明をおすすめします。
件名: Self Introduction: <あなたの名前> 本文: あなたのフリー&オープンソースプロジェクトの経験、 あなたが提出したレビューリクエストへのリンク、 あなた自身の簡単な説明含む、 あなたが妥当と考える情報を追加してください。 必要に応じてGPGキー情報を投稿することもできます。
フィードバックを監視する
あなたの最初のパッケージの Bugzilla レポートを監視してください。メールで変更通知を受け取るべきです。レビューアが blocker だと指摘したらとにかく修正してください。
スポンサーを得る
レビューアがパッケージを承認した場合、そのパッケージをチェックインしてビルドするために独立してスポンサーを得なければなりません。スポンサーは自動的に得られるのではなく、パッケージガイドラインの理解度を説明するために何らかの方法で参加するということを要求します。スポンサーを得る鍵は、あなたがプロジェクトのガイドラインとプロセスを理解して従っているということを既存のスポンサーレベルのメンバーへ説得することです。
スポンサーを得る方法の詳細は パッケージャグループでスポンサーを得る方法 を参照してください。
あなたのスポンサーはパッケージャグループにあなたを追加することができます。スポンサーに関する確認メールを受け取るべきです。
ソースコード管理(SCM)システムへパッケージを追加して所有者をセットする
先に進む前に、Fedora Account Systemのクレデンシャルを使って、 https://src.fedoraproject.org/ にログインし、 あなたのアカウントを同期してください。
もしあなたが、パッケージの共同保守管理者ではなくて、新しいパッケージの保守管理者になろうとしているなら、fedpkg をつかって、あなたのパッケージ用に、新しくgitレポジトリをリクエストしてください。サブコマンドは、 "fedpkg request-repo" です。これには、コマンドが必要とする、Pagure API token を準備するためのヘルプ文言を含んでいます。あなたは、レポジトリ名とレビューのバグ番号を指定しなければなりません。例えば、 "fedpkg request-repo python-prometheus_client 1590452" です。
gitレポジトリ作成のリクエストは、大抵24時間以内に管理者にレビューされて、処理されます。チケットが処理されると、パッケージをコミットしてビルドするためのアクセス権が与えられます。
モジュールをチェックアウトする
今すぐあなたのモジュールをチェックアウト することができます が、そうする前に mkdir ~/fedora-scm ; cd ~/fedora-scm
を実行することを検討してください。そうすると、そのディレクトリ内に全てのファイルが展開されます。さらにキーフレーズを入力しなくて良いように ssh-add
を実行して設定することも実行できます。
SCM からあなたのモジュールをチェックアウトする準備が整いました。
fedpkg clone -B <packagename>
<packagename>
はあなたのパッケージ名に置き換えてください。
パッケージをテストする
あなたのパッケージをテストするためのより詳しい情報は、 Mockを使ってパッケージのビルドをテストする と Kojiビルドシステムを使う を見てください。 Mockは、あなたのローカルシステムを使いますが、Kojiコマンドラインツールの方は、Fedoraのビルドシステムサーバを使います。
パッケージをインポートし、コミットし、ビルドする
今、あなたは fedpkg コマンドで(空の)パッケージモジュールをチェックアウトしました。そして、そのモジュールへ移動します。
cd MODULE_NAME
SCM 内へ SRPM のコンテンツをインポートするために fedpkg コマンドを実行してください。
fedpkg import PATH_TO_SRPM
# Review Changes, press 'q' to stop; Revert with: git reset --hard HEAD git commit -m "Initial import (#XXXXXX)." git push fedpkg build
お判りだと思いますが、PATH_TO_SRPM
の部分を承認された SRPM へのフルパス(URL ではない)に置き換えて実行ください。また、XXXXXX
は、該当パッケージのレビューバグ番号に置き換えてください。
これは master (rawhide) ブランチにのみコミット&ビルドし、インポートします。
もし次のようなメッセージが出て、プッシュできない場合:
W access for why DENIED to YOUR_ACCOUNT fatal: The remote end hung up unexpectedly Could not push: Command '['git', 'push']' returned non-zero exit status 128
そのパッケージブランチを変更するのに必要な権限をあなたが持っていないです。 https://src.fedoraproject.org/rpms/PACKAGE_NAME を見て、必要な権限をリクエストしてください。
Fedoraパッケージ保守管理システムについての詳しいことは、 Package maintenance guide を見てください。
ブランチを更新する(if desired)
f
# (公式には F-
# で、以前のは FC-
#), master
等です。従って f40'は、Fedora 40のブランチです。
あるブランチに変更するためには、最初に次のように実行します。:
fedpkg switch-branch BRANCH (e.g. f40)
マスターから最初のコミットをマージし、同じコミットをブランチに作成します。
git merge master
サーバに変更内容をプッシュします。
git push
パッケージをビルドします。
fedpkg build
もし、もう一つのブランチがあって、"To switch to a branch" を繰り返し、それぞれインポートして、コミットします。
万事うまくいったら、あなたのブランチは、ビルドのためにキューにアップされ、パッケージは綺麗にビルドされると、あなたのやることは終了となります!
もしビルドが失敗したなら、ビルドシステムはあなたにレポートをメールで送ります。レポートにログが表示されます。gitに必要な変更をコミットし、SPECファイルのリリースビルド番号をあげて、新しいビルドをリクエストしてください。
Bodhiにパッケージ更新として投稿する
Bodhi という Fedora アップデートシステムはアップデートの公開やパッケージの分類等のために使用されます。Bodhi 経由で "master" (別名 rawhide) パッケージを投稿してはいけません。
コマンドラインから Bodhi を使用してアップデートを転送することができます。
fedpkg update
詳細は パッケージ更新投稿ガイド を参照してください。
パッケージを "comps" ファイルで利用可能にする
パッケージが適切なら、インストール中や yum のパッケージグループ操作で追加して選択されるように "comps" ファイルで利用可能にしてください。詳細は PackageMaintainers/CompsXml を参照してください。
アップデートを監視する
Fedora には、あなたがパッケージングしているソフトウェアのアップストリームの新たなリリースを監視するために利用できるインフラがあります。詳細はアップストリームのリリースを監視するを参照してください。パッケージアップデート入門を読んでアップデートの取り扱い方を学んでください。
ヘルプを取得する
我々はこのプロセスが時には泥のように不明確であることを認識していて、常にもっとより良いプロセスにしようと挑戦しています。あなたが何らかの問題に遭遇したり、何か質問があったら devel メーリングリストか、freenode の #fedora-devel で尋ねてください。詳細はコミュニケーションページを参照してください。
Fedora メンタープロジェクトには、パッケージングのために新たな貢献者を喜んで手伝ってくれる人たちがいます。詳細はメンターページを参照してください。
さらにパッケージメンテナのための git 使用の FAQ も参照してください。
既存のメンテナのために Fedora パッケージコレクションに新たなパッケージを入れる
あなたが既に Fedora のパッケージをメンテナンスしていて他のパッケージをメンテナンスしたいなら、既存の貢献者のための新たなパッケージプロセスに従うようにしてください。
一度限りの貢献
既存パッケージ への変更は、プルリクエスト を投稿することにより、提案可能です。プルリクエストを作成するためには、Fedoraアカウント を持たなければなりません。
もし、あなたのアカウントが'packager'グループにない場合は、あなたはsrc.fedoraproject.org上でフォークしたレポジトリに対して、変更をプッシュすることはできませんから、外部のGitホスティングプラットフォーム(例えば、https://pagure.io/new など)を使い、リモートからのプルリクエストを使わなければいけません。