第4回 ユーもオープンソースにジョインしちゃいなよ!新入学生/新社会人応援企画第2弾(1/2 ページ)

ソフトウェアを開発し、ライセンスを決めて公開すれば一丁上がり。言葉にすると簡単でも、具体的にやろうとすると戸惑うケースも多い。今回から2回に分けて、オープンソースソフトウェアの開発/公開における基本事項と、コミュニティーとつきあうコツを解説しよう。

» 2007年03月09日 07時00分 公開
[ITmedia]

 ソフトウェアを開発し、ライセンスを決めて公開すれば一丁上がり。言葉にすると簡単でも、具体的にやろうとすると戸惑うケースも多い。ソースコードをどこで公開するのか、バグ報告はどうやって受け付ければ良いのか。もちろん、こういった問題にも先人がある一定の答を出している。今回から2回に分けて、オープンソースソフトウェアの開発/公開における基本事項と、コミュニティーとのつきあうコツを解説しよう。

開発者になろう!

 世の中にはたくさんのオープンソースプロジェクトがあり、その運営ポリシーや運用もさまざまだ。うまくいくプロジェクトもあれば頓挫してしまうものもある。ここでは、開発の基本的な流れを解説し、成功しているプロジェクトの事例を幾つか紹介しよう。

開発の流れ

 オープンソースソフトウェア(以下、OSS)を使っていて不具合を発見した、あるいは欲しい機能があるといった場合、既存のソフトウェアプロジェクトに何らかの働きかけをすることになる。例えば、不具合報告をする、機能追加の要望を出すなどだ(もちろん、自分でコードを修正しても良い)。

 一般にOSSの開発プロジェクトはメーリングリスト(以下、ML)やホームページなど、幾つかの手段で連絡が取れるようになっている(表1)。もし何らかのソフトウェアプロジェクトに関心があるのなら、MLに入っておくと良いだろう。MLに流通するメールをしばらく読んでいると、そのプロジェクトでのバグ管理方法や開発の雰囲気がつかめてくるはずだ。

表1 表1 開発プロジェクトとの連絡手段

 不具合を自分で修正した場合は、パッチと呼ばれるソースコードの修正差分をMLに投稿するのが一般的だ。パッチは、UNIX/Linuxで標準提供されているdiffコマンドを使用して実行例1のように作成する(リスト1)


$ cp -a Hello Hello.work
$ cd Hello.work
$ vim hello.c
$ diff -c ../Hello . > ../Hello.patch

実行例1 パッチの作成方法
それぞれの行で何をやっているかというと、
1行目:オリジナルのソースツリーを、修正作業用ソースツリーとして丸ごとコピー
2行目:修正作業用用ソースツリーに移動する
3行目:実際にファイルを修正する
4行目:オリジナルのソースツリーと比較し、差分情報をファイルに保存
リスト1 リスト1 パッチ(差分情報ファイル)

 これをMLに投稿すると、受け取った人は自分の手元にあるソースコードに対して次のようにパッチを適用し、修正部分を自分のソースツリーにマージ(統合)できるのだ。

$ cd Hello.test ← テスト用ソースツリーに移動

$ cat /tmp/hello.patch | patch -p1 ← パッチを適用


 パッチは差分情報を用いることでソースコードの管理を便利にするツールだが、これに加えてバージョン/日付/修正者情報を管理する機能を備えたものがバージョン管理システムだ。最近では、複数のユーザーで協調作業しやすいよう、バージョン管理システムを使ってソースコードを管理していることが多い。現在よく使われているのはCVS(Concurrent Versions System)で、CVSより使い勝手と機能に優れたSubversionや商用ソフトウェアを使っているプロジェクトもある。OSS開発に参加するなら、バージョン管理システムへの習熟は必須だろう。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ