NetBSD/pkgsrc開発者になる方法


はじめに

2019年3月1日にNetBSD開発者になり、syspkgとInstallationの作業をすることになりました。大学院での研究成果について「いっそ開発者になってアップストリームをいじればいい」と言われてから半年以上が経ち、2019年1月からようやく腰を上げて開発者申請をしたという経緯がありました。

NetBSD自体がマイナーなOSであり、その開発者になるにはどうしたらいいかという文書は日本語で書かれている印象がないのでここに残しておきます。またpkgsrc(7)のCVS repositoryに直接commitするにも開発者申請が必要ですが、ここではその話はしません。

1. NetBSDを使う

まずはNetBSDを使わないと話が始まりません。用途・動機はなんでもいいと思います。pkgsrc(7)であればGNU/Linux distributions・FreeBSD・OpenBSD上で利用できることから、OSをインストールして使うより敷居が高くはないと思われます。

1.1. 僕の場合

大学3年生冬の研究室配属ののち、研修で触ったのがNetBSDでした。卒業論文のために書いたプログラムはNetBSDに完全に依存していて、修士論文もまた同様でした。これは自発的に(無論、研究テーマを決めたのは自分自身)NetBSDを使い始めたというわけではなく、なりゆきでそうなったと言うのが正しいと思います。

2. できそうなことを見つける

NetBSD/pkgsrc(7)を使っていく中で、少なからず不便に思った点や困った点が見つかると思います。それをメーリングリストやユーザ会に報告したり、自分でそれを解決する、あるいはしたいと思ったときにはじめてThe NetBSD Projectへ参加する動機が見つかります。

2.1. 僕の場合

修士論文で書いたプログラムがNetBSDのソースツリーの一部に依存しており、事実そこだけforkしている形になっていました。しかしforkingの弊害、つまりアップストリームの変更に追従していくのが大変という問題に気づきました。

2.2. Project proposals for NetBSD

NetBSD WikiのProject proposals for NetBSDには未解決・進行中のプロジェクトの一覧が載っています。もしあなたが問題解決好きなエンジニアであればこの中から自身のスキルと嗜好に合ったものを探してみるといいでしょう。

2.3. Google Summer of Code

NetBSDのプロジェクトの中にはGoogle Summer of Codeに応募して取り組められるものもあります。GSoCに参加したくてかつNetBSDに少しでも興味があるのであれば、良いとっかかりになるのではないでしょうか。https://wiki.netbsd.org/projects/gsoc/

3. できそうなことをある程度こなす

やりたいこと・やってみたいことが見つかったら、それを実際にやってみます。そしてその成果をなんらかの形で共有します。共有する方法はなんでもいいです。SNSでシェアしてもいいですし、FLOSS系のイベントやカンファレンスで少し時間をもらって発表してもいいです。とにかく、なんらかのやりたいことがあって、それを現実に実行していると他の開発者に伝えることが重要です。

3.1. 僕の場合

成果をAsiaBSDConや日本NetBSDユーザーズグループのBoFで発表しました。成果物があまりにも特定分野に偏りすぎているがために特定のユーザコミュニティ内で成果発表をしないとあまり意味がない場合もあります。GNU/LinuxやLinuxカーネルならまだしも、*BSDはまさにこの典型です。

4. スポンサーを探す

最難関の手順です。まずこの時点で誰がNetBSDの開発者なのかを把握していないといけません。そのためにはSNSだけでなく対面して会える現実世界でのカンファレンスやイベントに出向く必要もあるでしょう。スポンサーになってくれるかどうか開発者に尋ねて、OKをもらってください。

ここからNew NetBSD developer application procedureの流れに沿って動くことになります。この時点ではまだ"Existing members decide to sponsor a potential member."の途中です。

この時点でスポンサーにPGP公開鍵へ署名してもらうといいでしょう。

5. 開発者申請する

スポンサーを最低1人、できれば2人集めたら開発者申請をします。スポンサーと相談しながらNetBSD Foundation Membership Application Formに必要事項を記入してください。以下を記入する必要があります。

スポンサーと相談してすべて書き終えたら、NetBSDのMembership committeeにMembership Application Formをメールで送ります。テキストを本文に書いてしまうといいでしょう。

6. 事務手続きをする

Membership committeeと開発者らによる審査が通ったら事務手続きをして完了です。この事務手続きはmembership agreement formに署名をしてThe NetBSD Foundationに郵送(あるいはFAX)し、PGPの公開鍵で署名された/etc/passwdのエントリとSSH公開鍵のテキストを所定のアドレスへ送る必要があります。ここで、署名するためのPGP公開鍵は既存のメンバーによって署名されたものでなければなりません。

完了!

これでNetBSDの開発者申請は完了し、めでたくNetBSD開発者の一員となれました。スポンサーとのやりとり以外はすべて英語なので厳しい人には厳しいかもしれませんが、英語でのやりとりは多くのFLOSSプロジェクトで必須でしょうからこれに限った話ではありません。

FLOSSはライセンスを守っていればアップストリームから好きにコードをもってきて自分の思うように書き直せますが、一番効率が良いのは自分自身でアップストリームのコードをいじり・保守していくことだと思います。可能であれば積極的にコミュニティやプロジェクトに自分の成果を還元していくことはFLOSSの共有の精神に則った素晴らしい行為でもありますし、積極的に挑戦していくべきでしょう。