第7章 パッケージ化、そして…

目次

7.1. バグ報告
7.1.1. 一度に大量のバグを報告するには (mass bug filing)
7.2. 品質維持の努力
7.2.1. 日々の作業
7.2.2. バグ潰しパーティ (BSP)
7.3. 他のメンテナに連絡を取る
7.4. 活動的でない、あるいは連絡が取れないメンテナに対応する
7.5. Debian 開発者候補に対応する
7.5.1. パッケージのスポンサーを行う
7.5.2. スポンサーされたパッケージを取り扱う
7.5.3. 新たな開発者を支持する (advocate)
7.5.4. 新規メンテナ申請 (new maintainer applications) を取り扱う

Debian は、単にソフトウェアのパッケージを作ってメンテナンスをしているだけではありません。この章では、単にパッケージを作ってメンテナンスする以外で Debian へ協力・貢献するやり方、多くの場合とても重要となるやり方の情報を取り扱います。

ボランティア組織の例にたがわず、Debian の活動はメンバーが何をしたいのか、時間を割くのに最も重大だと思われることが何か、というメンバーの判断に依っています。

7.1. バグ報告

我々としては、Debian パッケージで見つけたバグを登録することを勧めています。実際のところ、大抵の場合は Debian 開発者が第一線でのテスト作業者となっています。他の開発者のパッケージで見つけたバグを報告することで Debian の品質が向上されています。

Debian バグ追跡システム (BTS)バグ報告のやり方について (instructions for reporting bugs) を参照してください。

いつも使っているメールを受け取れるユーザアカウントからバグを送って見てください。そうすることで、開発者がそのバグに関するより詳細な情報を必要とする場合にあなたに尋ねることができます。root ユーザでバグを報告しないでください。

バグを報告するには、reportbug(1) の様なツールが使えます。これによって自動化を行って、かなり簡単な作業にできます。

パッケージに対して既にバグが報告されていないことを確認しておいてください。個々のパッケージに対するバグのリストは http://bugs.debian.org/パッケージ名 にて簡単に確認できます。querybts(1) のようなユーティリティもこの情報を入手できます (それから reportbug では大抵の場合は、バグを送信する前に querybts の実行もします)。

正しい所にバグを報告する様に心がけてください。例えばあるパッケージが他のパッケージのファイルを上書きしてしまうバグの場合ですが、バグ報告が重複して登録されるのを避けるため、これらのパッケージの両方のバグリストを確認してください。

さらに言うと、他のパッケージについても、何度も報告されているバグをマージしたり既に修正されているバグに「fixed」タグをつけたりすることもできます。そのバグの報告者であったりパッケージメンテナではない場合は (メンテナから許可をもらっていなければ)、実際にバグをクローズしてはいけないことに注意してください。

時折、あなたが報告したバグ報告について何が起こっているのかをチェックしたくなることでしょう。これは、もう再現できないものをクローズするきっかけになります。報告した全てのバグ報告を確認するには、http://bugs.debian.org/from:your-email-addr を参照すればいいだけです。

7.1.1. 一度に大量のバグを報告するには (mass bug filing)

大量の異なるパッケージに対して、同じ問題についての非常に多くのバグ (例えば 10 個以上) を報告するのは、推奨されていないやり方です。不要なバグ報告を避けるため、可能な限りの手続きを踏むようにしましょう。例えば、問題の確認を自動化できる場合は lintian に新しくチェック項目を追加すれば、エラーや警告が明確になります。

同じ問題について一度に 10 個以上のバグを報告する場合は、バグの投稿をする前に へ送ることをお勧めします。バグ報告を送る前に注意点を記述し、メールのサブジェクトに事実を挙げておきます。これで他の開発者がそのバグが本当に問題であるかどうかを確認できるようになります。さらに、これによって複数のメンテナが平行して同じバグ報告を登録するのを防止できるようになります。

dd-list プログラムを利用することと、明確になっているのであれば影響を受けるパッケージのリストを (devscripts パッケージの) whodepends を使って出力して、 へのメールに含めて下さい。

同じサブジェクトで大量のバグを送信する際の注意として、バグ報告がバグ情報用メーリングリストへ転送されないように  へバグ報告を送るべきである、ということです。

7.1.1.1. Usertag

多数のパッケージに対するバグを登録する際に BTS の usertag を使いたくなるかもしれません。usertag は 'patch' や 'wishlist' のような通常のタグに似ていますが、ユーザが定義する事と特定のユーザに対して一意な名前空間を占めるという点で違っています。これによって、同じバグについて衝突する事無しに、開発者がそれぞれ別のやり方で複数の設定ができるようになります。

バグを登録する際に usertag を追加するには、擬似ヘッダ (pseudo-header) UserUsertags を指定します。

To: submit@bugs.debian.org
Subject: バグタイトル

Package: パッケージ名
[ ... ]
User: メールアドレス
Usertags: タグ名 [ タグ名 ... ]

バグの説明 ...

タグは空白で区切られ、アンダースコア (_) を含められないのに注意してください。特定のグループやチームについてのバグを登録する場合は、適切なメーリングリストで注意を促した上で User をそのメーリングリストに設定するのをお勧めします。

特定の usertag でバグを参照する場合は http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=メールアドレス&tag=タグ名 を指定してください。

7.2. 品質維持の努力

7.2.1. 日々の作業

品質保証に割り当てられたグループの人々がいたとしても、QA 作業は彼らのみに課せられるものではありません。あなたもパッケージを可能な限りバグが無いように保ち、できるだけ lintian clean な状態 (lintian を参照) にすることで参加することができるのです。それが可能ではないように思えるなら、パッケージをいくつか「みなしご化 (orphan)」してください (「パッケージをみなしご化する」 参照)。または、溜まったバグ処理に追いつくため、他の人々に助力を願い出ることも可能です ( で助けを求めることができます)。同時に共同メンテナ (co-maintainer) を探すことも可能です (「共同メンテナンス」 を参照してください)。

7.2.2. バグ潰しパーティ (BSP)

時折、QA グループは可能な限りの問題を無くすためにバグ潰しパーティ (BSP) を開催しています。開催案内は で行われ、パーティがどの部分に集中してやるのかが告知されます。大抵はリリースクリティカルバグ (RC) への対応に当てられますが、大きなアップグレード (新しい perl バージョンでの全バイナリモジュールを再コンパイルのような) を完了する手助けのために開かれることもあります。

メンテナ以外によるアップロード (non-maintainer upload) のルールはパーティの開催中とそれ以外で違います。これは、パーティのアナウンスは NMU の予告であると考えられているためです。パーティによって影響を受けるパッケージを持っている場合 (例えばリリースクリティカルバグを持っている場合) は、それぞれ対応するバグについて現状説明とこのパーティでどの様なことを期待しているのかを説明しないといけません。NMU を望まない、パッチでの対応にのみ興味がある、あるいは自分自身で対処をする予定の場合は、BTS で説明をしてください。

パーティに参加している人には NMU についての特別ルールが割り当てられます。NMU について、少なくとも 3 日遅延してアップロードを行う場合 (DELAYED/3-day キューなどへのアップロードの場合) は予告無しで NMU できるのです。他の NMU ルールは全て通常通りに適用されます - NMU のパッチを BTS に送付する必要があります (修正されていないバグのいずれかを NMU で修正する、あるいは新たなバグにパッチを送り、fixed とタグを付けるなど)。それから、作業者は各メンテナの要望に沿う必要があります。

NMU をする自信が無い場合は、BTS へパッチを投げるだけにしてください。NMU でパッケージを壊してしまうより、遥かに良いことです。

7.3. 他のメンテナに連絡を取る

Debian と共に過ごす間、様々な理由で他のメンテナに連絡を取りたくなることでしょう。関連パッケージ間での共同作業の新たなやり方について協議したい場合や、開発元で自分が使いたい新しいバージョンが利用可能になっていることを単に知らせたい場合などです。

パッケージメンテナのメールアドレスを探しだすのは骨が折れます。幸いな事に、パッケージ名@packages.debian.org というシンプルなメールのエイリアスがあり、メンテナらの個人アドレスが何であれメンテナへメールを届ける手段となっています。パッケージ名 はパッケージのソース名かバイナリパッケージ名に置き換えてください。

「パッケージ追跡システム」 経由でソースパッケージの購読を行っている人に連絡を取りたくなるかもしれません。その場合は パッケージ名@packages.qa.debian.org メールアドレスが使えます。

7.4. 活動的でない、あるいは連絡が取れないメンテナに対応する

パッケージがメンテナンスされていないと気づいた場合、メンテナが活動的でパッケージの作業を続けるかどうかを確認する必要があります。もはや活動的な状態ではない可能性もありますが、言わばシステムに登録していなかったという可能性もあります。あるいは、単に確認が必要なだけという可能性もあります。

Missing In Action (行方不明) だと考えられているメンテナについての情報が記録されるシンプルなシステム (MIA データベース) があります。品質保証グループ (QA グループ) のメンバーが活動的ではないメンテナに連絡を取った場合や、そのメンテナについて新たな情報がもたらされた場合、その記録が MIA データベースに残されます。このシステムは qa.debian.org ホスト上の /org/qa.debian.org/mia で利用可能になっており、mia-query ツールで検索ができます。どうやってデータベースを検索するのかについては mia-query --help と入力してください。

最初の一歩はメンテナに丁寧にコンタクトを取り、応答するのに充分な時間待つことです。充分な時間というのを定義するのは非常に困難ですが、実生活では時折非常に多忙になるのを考慮に入れると重要なことです。一つのやり方としては、リマインダーを二週間後に送るという方法があります。

メンテナが4週間 (1ヶ月)応答をしない場合、おそらく反応がないと判断できます。この様な場合はより詳細に確認し、可能な限り問題となっているメンテナに関する有用な情報をかき集める必要があります。これには以下のようなものが含まれています。

  • 開発者 LDAP データベース を通じて得られる echelon 情報は、開発者が最後に Debian メーリングリストに投稿したはいつなのかを示します (これには での配布物のアップロードのメールも含まれます)。また、データベースでメンテナが休暇中かどうかも確認してください

  • このメンテナが対応しているパッケージ数やパッケージの状態。特に、長期間放置され続けている RC バグがあるかどうか? さらに通常どの程度の数のバグがあるか? もう一つの重要な情報はパッケージが NMU されているかどうか、されているとしたら誰によって行われているか、です。

  • Debian 以外でメンテナの活動があるかどうか? 例えば、近頃 Debian 以外のメーリングリストや news グループへの投稿をしているなど。

パッケージがスポンサーされている、つまりメンテナが公式の Debian 開発者ではない場合はちょっとした問題となります。例えば echelon の情報は、スポンサーされている人は利用できません。そのため実際にパッケージをアップロードした Debian 開発者を探して確認を取る必要があります。彼らがパッケージにサインしたということは、アップロードについて何であれ責任を持ち、スポンサーした人に何が起こっているかを知っていそうだということです。

に、活動が見えないメンテナの居所に誰か気づいているかという質問を投稿するのもありです。問題の人を Cc: に入れてください。

ここに書かれた全てを収集したなら、に連絡しましょう。この名前のエリアスを担当している人はあなたが供給した情報を使ってどう進めるかを判断します。例えば、そのメンテナのパッケージの一部または全てをみなしご化 (Orphan) するかも知れません。パッケージがNMUされていた場合は、パッケージをみなしご化 (Orphan) する前にNMUをした人に連絡する事を選ぶかもしれません — NMUをした人はきっとパッケージに関心があるでしょうから。

最後に一言: 礼儀正しく振る舞いましょう。我々は所詮ボランティアで、全ての時間を Debian に捧げられるわけではありません。また、関わっている人の状況がわかるわけでもありません。重い病気にかかっているかかもしれないし、あるいは死んでしまっているかもしれません - メッセージを受け取る側にどんな人がいるかは分かりません。亡くなった方のご親戚の方がメールを読んだ場合に、非常に無礼で怒った叱責調のメッセージを見つけてどうお感じになるかを想像してください。

一方で、我々はボランティアではありますが責任を持っています。全体の幸せの重要性をよく考える必要があります — もしメンテナが時間が足りなかったり、もう興味を無くしてしまった場合は、パッケージを誰か他のより時間がある人間に与えるべきです。

MIA チームで働くのに興味を持った場合は、技術上の詳細と MIA の手順が記載されている qa.debian.org 上の /org/qa.debian.org/mia 内の README ファイルを参照して、 に連絡を取ってください。

7.5. Debian 開発者候補に対応する

Debian の成功は新たな才能あるボランティアをどう魅了し確保するかにかかっています。あなたが経験豊かな開発者なら、新たな開発者を呼び込むプロセスに関与するべきです。このセクションでは新たな開発者候補者をどうやって手助けするのかについて記述します。

7.5.1. パッケージのスポンサーを行う

パッケージのスポンサーになるというのは自分の権限ではパッケージをアップロードできない、新規メンテナ応募者のパッケージをアップロードするということです。また、パッケージのスポンサーを行うことはそれに伴う責任を引き受けることを意味します。

新たなメンテナは大抵 Debian パッケージの作成する際に何らかの困難に会いますーこれは非常に理解できることです。これはなぜスポンサーがいてパッケージをチェックし Debian に含めるのに充分良いものであるかどうかを確認するのかの根拠です。(注記: スポンサーされたパッケージが新規の場合、Debian に入れる前に ftpmaster らがそのパッケージをチェックする必要があります)。

単にサインしてアップロードするや、再コンパイルするだけのスポンサー作業は全く推奨されません。ソースパッケージを自分自身がパッケージをビルドするようにビルドする必要があります。changelog と control ファイルに開発候補者の名前を残してあろうとも、アップロード誰がしたかは遡及できることを忘れないでください。

もしあなたが開発候補者の応募管理者であれば、彼らのスポンサーとなることもできます。こうすることで応募者が応募作業の 'Tasks and Skills' 部分をどう取り扱えるかを判断できます。

7.5.2. スポンサーされたパッケージを取り扱う

スポンサーされたパッケージを Debian にアップロードすることは、Debian の標準について最低限は合致していることを保証することです。つまり、アップロード前に自分自身のシステムでパッケージをビルド、テストしなくてはいけないという意味です。

あなたは、スポンサー対象者からの .deb バイナリを単にアップロードすることはできません。通常、diff ファイルとオリジナルのソース tar ファイルを要求して、それから自分でソースをダウンロードして diff を適用する必要があります。実際には、スポンサー対象者が生成したソースパッケージを使うということです。この場合、彼らが提供した .orig.tar.{gz,bz2,lzma} ファイル中の開発元 (upstream) を改変していないことをチェックする必要があります。

スポンサー対象者に必要な変更点を指摘の連絡するのを恐れないでください。パッケージが受け入れ可能な形になる前に何度もメールのやりとりが起こるのはよくあることです。スポンサーになるということはメンター (mentor) になるということです。

一旦 Debian の標準に合致するようになったら、incoming ディレクトリにアップロードする前にパッケージを以下の様にしてビルドして署名してください

dpkg-buildpackage -kKEY-ID

もちろん、秘密鍵のキーリング中で唯一である限り、どの KEY-ID も使うことができます。

control ファイルのMaintainer 欄とchangelog にはパッケージ作業を行った人を記載する必要があります。つまりはスポンサー対象者、ということです。そうすることで、スポンサー対象者がパッケージに対する BTS メールを受け取れるようになります。

スポンサーを行ったという状況証拠を残しておいて後から確認したいという場合は、最も新しい changelog のエントリにそのような記述を追加できます。

「パッケージ追跡システム」 を使って、スポンサーしたパッケージの状況を把握するのをお勧めします。

7.5.3. 新たな開発者を支持する (advocate)

Debian ウェブサイトの開発者志願者の支持者になる (advocating a prospective developer)のページを参照してください。

7.5.4. 新規メンテナ申請 (new maintainer applications) を取り扱う

Debian のウェブサイトにある 申請管理者用チェックリスト (Checklist for Application Managers) を参照してください。